1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
9 -- Copyright (C) 2001-2007, AdaCore --
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 2, 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 COPYING. If not, write --
19 -- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
20 -- Boston, MA 02110-1301, USA. --
22 -- GNAT was originally developed by the GNAT team at New York University. --
23 -- Extensive contributions were provided by Ada Core Technologies Inc. --
25 ------------------------------------------------------------------------------
27 -- This is the default version which does not support libraries.
28 -- All subprograms are dummies, because they are never called,
29 -- except Support_For_Libraries which returns None.
34 with MLib.Tgt.Specific;
35 pragma Warnings (Off, MLib.Tgt.Specific);
36 -- MLib.Tgt.Specific is with'ed only for elaboration purposes
38 package body MLib.Tgt is
44 function Archive_Builder return String is
46 return Archive_Builder_Ptr.all;
49 -----------------------------
50 -- Archive_Builder_Default --
51 -----------------------------
53 function Archive_Builder_Default return String is
56 end Archive_Builder_Default;
58 -----------------------------
59 -- Archive_Builder_Options --
60 -----------------------------
62 function Archive_Builder_Options return String_List_Access is
64 return Archive_Builder_Options_Ptr.all;
65 end Archive_Builder_Options;
67 -------------------------------------
68 -- Archive_Builder_Options_Default --
69 -------------------------------------
71 function Archive_Builder_Options_Default return String_List_Access is
73 return new String_List'(1 => new String'("cr"));
74 end Archive_Builder_Options_Default;
76 ------------------------------------
77 -- Archive_Builder_Append_Options --
78 ------------------------------------
80 function Archive_Builder_Append_Options return String_List_Access is
82 return Archive_Builder_Append_Options_Ptr.all;
83 end Archive_Builder_Append_Options;
85 --------------------------------------------
86 -- Archive_Builder_Append_Options_Default --
87 --------------------------------------------
89 function Archive_Builder_Append_Options_Default return String_List_Access is
91 return new String_List'(1 => new String'("q"));
92 end Archive_Builder_Append_Options_Default;
98 function Archive_Ext return String is
100 return Archive_Ext_Ptr.all;
103 -------------------------
104 -- Archive_Ext_Default --
105 -------------------------
107 function Archive_Ext_Default return String is
110 end Archive_Ext_Default;
112 ---------------------
113 -- Archive_Indexer --
114 ---------------------
116 function Archive_Indexer return String is
118 return Archive_Indexer_Ptr.all;
121 -----------------------------
122 -- Archive_Indexer_Default --
123 -----------------------------
125 function Archive_Indexer_Default return String is
128 end Archive_Indexer_Default;
130 -----------------------------
131 -- Archive_Indexer_Options --
132 -----------------------------
134 function Archive_Indexer_Options return String_List_Access is
136 return Archive_Indexer_Options_Ptr.all;
137 end Archive_Indexer_Options;
139 -------------------------------------
140 -- Archive_Indexer_Options_Default --
141 -------------------------------------
143 function Archive_Indexer_Options_Default return String_List_Access is
145 return new String_List (1 .. 0);
146 end Archive_Indexer_Options_Default;
148 ---------------------------
149 -- Build_Dynamic_Library --
150 ---------------------------
152 procedure Build_Dynamic_Library
153 (Ofiles : Argument_List;
154 Options : Argument_List;
155 Interfaces : Argument_List;
156 Lib_Filename : String;
158 Symbol_Data : Symbol_Record;
159 Driver_Name : Name_Id := No_Name;
160 Lib_Version : String := "";
161 Auto_Init : Boolean := False)
164 Build_Dynamic_Library_Ptr
174 end Build_Dynamic_Library;
176 ------------------------------
177 -- Default_Symbol_File_Name --
178 ------------------------------
180 function Default_Symbol_File_Name return String is
182 return Default_Symbol_File_Name_Ptr.all;
183 end Default_Symbol_File_Name;
185 --------------------------------------
186 -- Default_Symbol_File_Name_Default --
187 --------------------------------------
189 function Default_Symbol_File_Name_Default return String is
192 end Default_Symbol_File_Name_Default;
198 function DLL_Ext return String is
200 return DLL_Ext_Ptr.all;
203 ---------------------
204 -- DLL_Ext_Default --
205 ---------------------
207 function DLL_Ext_Default return String is
216 function DLL_Prefix return String is
218 return DLL_Prefix_Ptr.all;
221 ------------------------
222 -- DLL_Prefix_Default --
223 ------------------------
225 function DLL_Prefix_Default return String is
228 end DLL_Prefix_Default;
234 function Dynamic_Option return String is
236 return Dynamic_Option_Ptr.all;
239 ----------------------------
240 -- Dynamic_Option_Default --
241 ----------------------------
243 function Dynamic_Option_Default return String is
246 end Dynamic_Option_Default;
252 function Is_Object_Ext (Ext : String) return Boolean is
254 return Is_Object_Ext_Ptr (Ext);
257 ---------------------------
258 -- Is_Object_Ext_Default --
259 ---------------------------
261 function Is_Object_Ext_Default (Ext : String) return Boolean is
264 end Is_Object_Ext_Default;
270 function Is_C_Ext (Ext : String) return Boolean is
272 return Is_C_Ext_Ptr (Ext);
275 ----------------------
276 -- Is_C_Ext_Default --
277 ----------------------
279 function Is_C_Ext_Default (Ext : String) return Boolean is
282 end Is_C_Ext_Default;
288 function Is_Archive_Ext (Ext : String) return Boolean is
290 return Is_Archive_Ext_Ptr (Ext);
293 ----------------------------
294 -- Is_Archive_Ext_Default --
295 ----------------------------
297 function Is_Archive_Ext_Default (Ext : String) return Boolean is
300 end Is_Archive_Ext_Default;
306 function Libgnat return String is
308 return Libgnat_Ptr.all;
311 ---------------------
312 -- Libgnat_Default --
313 ---------------------
315 function Libgnat_Default return String is
320 ------------------------
321 -- Library_Exists_For --
322 ------------------------
324 function Library_Exists_For
325 (Project : Project_Id; In_Tree : Project_Tree_Ref) return Boolean
328 return Library_Exists_For_Ptr (Project, In_Tree);
329 end Library_Exists_For;
331 --------------------------------
332 -- Library_Exists_For_Default --
333 --------------------------------
335 function Library_Exists_For_Default
336 (Project : Project_Id; In_Tree : Project_Tree_Ref) return Boolean
339 if not In_Tree.Projects.Table (Project).Library then
340 Prj.Com.Fail ("INTERNAL ERROR: Library_Exists_For called " &
341 "for non library project");
346 Lib_Dir : constant String :=
348 (In_Tree.Projects.Table (Project).Library_Dir);
349 Lib_Name : constant String :=
351 (In_Tree.Projects.Table (Project).Library_Name);
354 if In_Tree.Projects.Table (Project).Library_Kind = Static then
355 return Is_Regular_File
356 (Lib_Dir & Directory_Separator & "lib" &
357 Fil.Append_To (Lib_Name, Archive_Ext));
360 return Is_Regular_File
361 (Lib_Dir & Directory_Separator & DLL_Prefix &
362 Fil.Append_To (Lib_Name, DLL_Ext));
366 end Library_Exists_For_Default;
368 ---------------------------
369 -- Library_File_Name_For --
370 ---------------------------
372 function Library_File_Name_For
373 (Project : Project_Id;
374 In_Tree : Project_Tree_Ref) return File_Name_Type
377 return Library_File_Name_For_Ptr (Project, In_Tree);
378 end Library_File_Name_For;
380 -----------------------------------
381 -- Library_File_Name_For_Default --
382 -----------------------------------
384 function Library_File_Name_For_Default
385 (Project : Project_Id;
386 In_Tree : Project_Tree_Ref) return File_Name_Type
389 if not In_Tree.Projects.Table (Project).Library then
390 Prj.Com.Fail ("INTERNAL ERROR: Library_File_Name_For called " &
391 "for non library project");
396 Lib_Name : constant String :=
398 (In_Tree.Projects.Table (Project).Library_Name);
401 if In_Tree.Projects.Table (Project).Library_Kind =
405 Name_Buffer (1 .. Name_Len) := "lib";
406 Add_Str_To_Name_Buffer (Fil.Append_To (Lib_Name, Archive_Ext));
409 Add_Str_To_Name_Buffer (DLL_Prefix);
410 Add_Str_To_Name_Buffer (Fil.Append_To (Lib_Name, DLL_Ext));
416 end Library_File_Name_For_Default;
418 --------------------------------------
419 -- Library_Major_Minor_Id_Supported --
420 --------------------------------------
422 function Library_Major_Minor_Id_Supported return Boolean is
424 return Library_Major_Minor_Id_Supported_Ptr.all;
425 end Library_Major_Minor_Id_Supported;
427 ----------------------------------------------
428 -- Library_Major_Minor_Id_Supported_Default --
429 ----------------------------------------------
431 function Library_Major_Minor_Id_Supported_Default return Boolean is
434 end Library_Major_Minor_Id_Supported_Default;
440 function Object_Ext return String is
442 return Object_Ext_Ptr.all;
445 ------------------------
446 -- Object_Ext_Default --
447 ------------------------
449 function Object_Ext_Default return String is
452 end Object_Ext_Default;
458 function PIC_Option return String is
460 return PIC_Option_Ptr.all;
463 ------------------------
464 -- PIC_Option_Default --
465 ------------------------
467 function PIC_Option_Default return String is
470 end PIC_Option_Default;
472 -----------------------------------------------
473 -- Standalone_Library_Auto_Init_Is_Supported --
474 -----------------------------------------------
476 function Standalone_Library_Auto_Init_Is_Supported return Boolean is
478 return Standalone_Library_Auto_Init_Is_Supported_Ptr.all;
479 end Standalone_Library_Auto_Init_Is_Supported;
481 -------------------------------------------------------
482 -- Standalone_Library_Auto_Init_Is_Supported_Default --
483 -------------------------------------------------------
485 function Standalone_Library_Auto_Init_Is_Supported_Default return Boolean is
488 end Standalone_Library_Auto_Init_Is_Supported_Default;
490 ---------------------------
491 -- Support_For_Libraries --
492 ---------------------------
494 function Support_For_Libraries return Library_Support is
496 return Support_For_Libraries_Ptr.all;
497 end Support_For_Libraries;
499 -----------------------------------
500 -- Support_For_Libraries_Default --
501 -----------------------------------
503 function Support_For_Libraries_Default return Library_Support is
506 end Support_For_Libraries_Default;