diff options
author | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
---|---|---|
committer | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
commit | 554fd8c5195424bdbcabf5de30fdc183aba391bd (patch) | |
tree | 976dc5ab7fddf506dadce60ae936f43f58787092 /gcc/ada/mlib.ads | |
download | cbb-gcc-4.6.4-upstream.tar.bz2 cbb-gcc-4.6.4-upstream.tar.xz |
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig;
imported gcc-4.6.4 source tree from verified upstream tarball.
downloading a git-generated archive based on the 'upstream' tag
should provide you with a source tree that is binary identical
to the one extracted from the above tarball.
if you have obtained the source via the command 'git clone',
however, do note that line-endings of files in your working
directory might differ from line-endings of the respective
files in the upstream repository.
Diffstat (limited to 'gcc/ada/mlib.ads')
-rw-r--r-- | gcc/ada/mlib.ads | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/gcc/ada/mlib.ads b/gcc/ada/mlib.ads new file mode 100644 index 000000000..0aa62d215 --- /dev/null +++ b/gcc/ada/mlib.ads @@ -0,0 +1,97 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT COMPILER COMPONENTS -- +-- -- +-- M L I B -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 1999-2009, AdaCore -- +-- -- +-- GNAT is free software; you can redistribute it and/or modify it under -- +-- terms of the GNU General Public License as published by the Free Soft- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- +-- for more details. You should have received a copy of the GNU General -- +-- Public License distributed with GNAT; see file COPYING3. If not, go to -- +-- http://www.gnu.org/licenses for a complete copy of the license. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +-- This package provides the core high level routines used by GNATMLIB +-- and GNATMAKE to build libraries + +with Namet; use Namet; +with Osint; use Osint; + +with GNAT.OS_Lib; use GNAT.OS_Lib; + +package MLib is + + No_Argument_List : aliased String_List := (1 .. 0 => null); + No_Argument : constant String_List_Access := No_Argument_List'Access; + + Max_Characters_In_Library_Name : constant := 20; + -- Maximum number of characters in a library name. + -- Used by Check_Library_Name below. + + type Fail_Proc is access procedure (S1 : String); + + Fail : Fail_Proc := Osint.Fail'Access; + -- This procedure is used in the MLib hierarchy, instead of + -- directly calling Osint.Fail. + -- It is redirected to Make.Make_Failed by gnatmake. + + procedure Check_Library_Name (Name : String); + -- Verify that the name of a library has the following characteristics + -- - starts with a letter + -- - includes only letters and digits + -- - contains not more than Max_Characters_In_Library_Name characters + + procedure Build_Library + (Ofiles : Argument_List; + Output_File : String; + Output_Dir : String); + -- Build a static library from a set of object files + + procedure Copy_ALI_Files + (Files : Argument_List; + To : Path_Name_Type; + Interfaces : String_List); + -- Copy all ALI files Files to directory To. + -- Mark Interfaces ALI files as interfaces, if any. + + procedure Create_Sym_Links + (Lib_Path : String; + Lib_Version : String; + Lib_Dir : String; + Maj_Version : String); + + function Linker_Library_Path_Option return String_Access; + -- Linker option to specify to the linker the library directory path. + -- If non null, the library directory path is to be appended. + -- Should be deallocated by the caller, when no longer needed. + + function Major_Id_Name + (Lib_Filename : String; + Lib_Version : String) return String; + -- Returns the major id library file name, if it exists. + -- For example, if Lib_Filename is "libtoto.so" and Lib_Version is + -- "libtoto.so.1.2", then "libtoto.so.1" is returned. + + function Separate_Run_Path_Options return Boolean; + -- Return True if separate rpath arguments must be passed to the linker + -- for each directory in the rpath. + +private + + Preserve : Attribute := Time_Stamps; + -- Used by Copy_ALI_Files. Changed to None for OpenVMS, because + -- Copy_Attributes always fails on VMS. + +end MLib; |