summaryrefslogtreecommitdiff
path: root/gcc/ada/mlib.ads
diff options
context:
space:
mode:
authorupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
committerupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
commit554fd8c5195424bdbcabf5de30fdc183aba391bd (patch)
tree976dc5ab7fddf506dadce60ae936f43f58787092 /gcc/ada/mlib.ads
downloadcbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2
cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.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.ads97
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;