File : mlib-tgt-specific-xi.adb


   1 ------------------------------------------------------------------------------
   2 --                                                                          --
   3 --                         GNAT COMPILER COMPONENTS                         --
   4 --                                                                          --
   5 --                     M L I B . T G T. S P E C I F I C                     --
   6 --                                                                          --
   7 --                                 B o d y                                  --
   8 --                                                                          --
   9 --          Copyright (C) 2003-2011, Free Software Foundation, Inc.         --
  10 --                                                                          --
  11 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  12 -- terms of the  GNU General Public License as published  by the Free Soft- --
  13 -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
  14 -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
  15 -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
  16 -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
  17 -- for  more details.  You should have  received  a copy of the GNU General --
  18 -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
  19 -- http://www.gnu.org/licenses for a complete copy of the license.          --
  20 --                                                                          --
  21 -- GNAT was originally developed  by the GNAT team at  New York University. --
  22 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
  23 --                                                                          --
  24 ------------------------------------------------------------------------------
  25 
  26 --  This is the bare board version of the body
  27 
  28 with Sdefault;
  29 with Types; use Types;
  30 
  31 package body MLib.Tgt.Specific is
  32 
  33    -----------------------
  34    -- Local Subprograms --
  35    -----------------------
  36 
  37    function Get_Target_Prefix return String;
  38    --  Returns the required prefix for some utilities
  39    --  (such as ar and ranlib) that depend on the real target.
  40 
  41    --  Non default subprograms
  42 
  43    function Archive_Builder return String;
  44 
  45    function Archive_Indexer return String;
  46 
  47    procedure Build_Dynamic_Library
  48      (Ofiles       : Argument_List;
  49       Options      : Argument_List;
  50       Interfaces   : Argument_List;
  51       Lib_Filename : String;
  52       Lib_Dir      : String;
  53       Symbol_Data  : Symbol_Record;
  54       Driver_Name  : Name_Id := No_Name;
  55       Lib_Version  : String  := "";
  56       Auto_Init    : Boolean := False);
  57 
  58    function DLL_Ext return String;
  59 
  60    function Dynamic_Option return String;
  61 
  62    function Library_Major_Minor_Id_Supported return Boolean;
  63 
  64    function PIC_Option return String;
  65 
  66    function Standalone_Library_Auto_Init_Is_Supported return Boolean;
  67 
  68    function Support_For_Libraries return Library_Support;
  69 
  70    ---------------------
  71    -- Archive_Builder --
  72    ---------------------
  73 
  74    function Archive_Builder return String is
  75    begin
  76       return Get_Target_Prefix & "ar";
  77    end Archive_Builder;
  78 
  79    ---------------------
  80    -- Archive_Indexer --
  81    ---------------------
  82 
  83    function Archive_Indexer return String is
  84    begin
  85       return Get_Target_Prefix & "ranlib";
  86    end Archive_Indexer;
  87 
  88    ---------------------------
  89    -- Build_Dynamic_Library --
  90    ---------------------------
  91 
  92    procedure Build_Dynamic_Library
  93      (Ofiles       : Argument_List;
  94       Options      : Argument_List;
  95       Interfaces   : Argument_List;
  96       Lib_Filename : String;
  97       Lib_Dir      : String;
  98       Symbol_Data  : Symbol_Record;
  99       Driver_Name  : Name_Id := No_Name;
 100       Lib_Version  : String  := "";
 101       Auto_Init    : Boolean := False)
 102    is
 103       pragma Unreferenced (Ofiles);
 104       pragma Unreferenced (Options);
 105       pragma Unreferenced (Interfaces);
 106       pragma Unreferenced (Lib_Filename);
 107       pragma Unreferenced (Lib_Dir);
 108       pragma Unreferenced (Symbol_Data);
 109       pragma Unreferenced (Driver_Name);
 110       pragma Unreferenced (Lib_Version);
 111       pragma Unreferenced (Auto_Init);
 112 
 113    begin
 114       null;
 115    end Build_Dynamic_Library;
 116 
 117    -------------
 118    -- DLL_Ext --
 119    -------------
 120 
 121    function DLL_Ext return String is
 122    begin
 123       return "";
 124    end DLL_Ext;
 125 
 126    --------------------
 127    -- Dynamic_Option --
 128    --------------------
 129 
 130    function Dynamic_Option return String is
 131    begin
 132       return "";
 133    end Dynamic_Option;
 134 
 135    -----------------------
 136    -- Get_Target_Prefix --
 137    -----------------------
 138 
 139    function Get_Target_Prefix return String is
 140       Target_Name : constant String_Ptr := Sdefault.Target_Name;
 141 
 142    begin
 143       --  Target_name is the program prefix without '-' but with a trailing '/'
 144 
 145       return Target_Name (Target_Name'First .. Target_Name'Last - 1) & '-';
 146    end Get_Target_Prefix;
 147 
 148    --------------------------------------
 149    -- Library_Major_Minor_Id_Supported --
 150    --------------------------------------
 151 
 152    function Library_Major_Minor_Id_Supported return Boolean is
 153    begin
 154       return False;
 155    end Library_Major_Minor_Id_Supported;
 156 
 157    ----------------
 158    -- PIC_Option --
 159    ----------------
 160 
 161    function PIC_Option return String is
 162    begin
 163       return "";
 164    end PIC_Option;
 165 
 166    -----------------------------------------------
 167    -- Standalone_Library_Auto_Init_Is_Supported --
 168    -----------------------------------------------
 169 
 170    function Standalone_Library_Auto_Init_Is_Supported return Boolean is
 171    begin
 172       return False;
 173    end Standalone_Library_Auto_Init_Is_Supported;
 174 
 175    ---------------------------
 176    -- Support_For_Libraries --
 177    ---------------------------
 178 
 179    function Support_For_Libraries return Library_Support is
 180    begin
 181       return Static_Only;
 182    end Support_For_Libraries;
 183 
 184 begin
 185    Archive_Builder_Ptr := Archive_Builder'Access;
 186    Archive_Indexer_Ptr := Archive_Indexer'Access;
 187    Build_Dynamic_Library_Ptr := Build_Dynamic_Library'Access;
 188    DLL_Ext_Ptr := DLL_Ext'Access;
 189    Dynamic_Option_Ptr := Dynamic_Option'Access;
 190    Library_Major_Minor_Id_Supported_Ptr :=
 191                                 Library_Major_Minor_Id_Supported'Access;
 192    PIC_Option_Ptr := PIC_Option'Access;
 193    Standalone_Library_Auto_Init_Is_Supported_Ptr :=
 194      Standalone_Library_Auto_Init_Is_Supported'Access;
 195    Support_For_Libraries_Ptr := Support_For_Libraries'Access;
 196 end MLib.Tgt.Specific;