OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [mlib-tgt.adb] - Blame information for rev 706

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 706 jeremybenn
------------------------------------------------------------------------------
2
--                                                                          --
3
--                         GNAT COMPILER COMPONENTS                         --
4
--                                                                          --
5
--                             M L I B . T G T                              --
6
--                                                                          --
7
--                                 B o d y                                  --
8
--                                                                          --
9
--                     Copyright (C) 2001-2010, AdaCore                     --
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
with MLib.Fil;
27
with Prj.Com;
28
 
29
with MLib.Tgt.Specific;
30
pragma Warnings (Off, MLib.Tgt.Specific);
31
--  MLib.Tgt.Specific is with'ed only for elaboration purposes
32
 
33
package body MLib.Tgt is
34
 
35
   ---------------------
36
   -- Archive_Builder --
37
   ---------------------
38
 
39
   function Archive_Builder return String is
40
   begin
41
      return Archive_Builder_Ptr.all;
42
   end Archive_Builder;
43
 
44
   -----------------------------
45
   -- Archive_Builder_Default --
46
   -----------------------------
47
 
48
   function Archive_Builder_Default return String is
49
   begin
50
      return "ar";
51
   end Archive_Builder_Default;
52
 
53
   -----------------------------
54
   -- Archive_Builder_Options --
55
   -----------------------------
56
 
57
   function Archive_Builder_Options return String_List_Access is
58
   begin
59
      return Archive_Builder_Options_Ptr.all;
60
   end Archive_Builder_Options;
61
 
62
   -------------------------------------
63
   -- Archive_Builder_Options_Default --
64
   -------------------------------------
65
 
66
   function Archive_Builder_Options_Default return String_List_Access is
67
   begin
68
      return new String_List'(1 => new String'("cr"));
69
   end Archive_Builder_Options_Default;
70
 
71
   ------------------------------------
72
   -- Archive_Builder_Append_Options --
73
   ------------------------------------
74
 
75
   function Archive_Builder_Append_Options return String_List_Access is
76
   begin
77
      return Archive_Builder_Append_Options_Ptr.all;
78
   end Archive_Builder_Append_Options;
79
 
80
   --------------------------------------------
81
   -- Archive_Builder_Append_Options_Default --
82
   --------------------------------------------
83
 
84
   function Archive_Builder_Append_Options_Default return String_List_Access is
85
   begin
86
      return new String_List'(1 => new String'("q"));
87
   end Archive_Builder_Append_Options_Default;
88
 
89
   -----------------
90
   -- Archive_Ext --
91
   -----------------
92
 
93
   function Archive_Ext return String is
94
   begin
95
      return Archive_Ext_Ptr.all;
96
   end Archive_Ext;
97
 
98
   -------------------------
99
   -- Archive_Ext_Default --
100
   -------------------------
101
 
102
   function Archive_Ext_Default return String is
103
   begin
104
      return "a";
105
   end Archive_Ext_Default;
106
 
107
   ---------------------
108
   -- Archive_Indexer --
109
   ---------------------
110
 
111
   function Archive_Indexer return String is
112
   begin
113
      return Archive_Indexer_Ptr.all;
114
   end Archive_Indexer;
115
 
116
   -----------------------------
117
   -- Archive_Indexer_Default --
118
   -----------------------------
119
 
120
   function Archive_Indexer_Default return String is
121
   begin
122
      return "ranlib";
123
   end Archive_Indexer_Default;
124
 
125
   -----------------------------
126
   -- Archive_Indexer_Options --
127
   -----------------------------
128
 
129
   function Archive_Indexer_Options return String_List_Access is
130
   begin
131
      return Archive_Indexer_Options_Ptr.all;
132
   end Archive_Indexer_Options;
133
 
134
   -------------------------------------
135
   -- Archive_Indexer_Options_Default --
136
   -------------------------------------
137
 
138
   function Archive_Indexer_Options_Default return String_List_Access is
139
   begin
140
      return new String_List (1 .. 0);
141
   end Archive_Indexer_Options_Default;
142
 
143
   ---------------------------
144
   -- Build_Dynamic_Library --
145
   ---------------------------
146
 
147
   procedure Build_Dynamic_Library
148
     (Ofiles       : Argument_List;
149
      Options      : Argument_List;
150
      Interfaces   : Argument_List;
151
      Lib_Filename : String;
152
      Lib_Dir      : String;
153
      Symbol_Data  : Symbol_Record;
154
      Driver_Name  : Name_Id := No_Name;
155
      Lib_Version  : String  := "";
156
      Auto_Init    : Boolean := False)
157
   is
158
   begin
159
      Build_Dynamic_Library_Ptr
160
        (Ofiles,
161
         Options,
162
         Interfaces,
163
         Lib_Filename,
164
         Lib_Dir,
165
         Symbol_Data,
166
         Driver_Name,
167
         Lib_Version,
168
         Auto_Init);
169
   end Build_Dynamic_Library;
170
 
171
   ------------------------------
172
   -- Default_Symbol_File_Name --
173
   ------------------------------
174
 
175
   function Default_Symbol_File_Name return String is
176
   begin
177
      return Default_Symbol_File_Name_Ptr.all;
178
   end Default_Symbol_File_Name;
179
 
180
   --------------------------------------
181
   -- Default_Symbol_File_Name_Default --
182
   --------------------------------------
183
 
184
   function Default_Symbol_File_Name_Default return String is
185
   begin
186
      return "";
187
   end Default_Symbol_File_Name_Default;
188
 
189
   -------------
190
   -- DLL_Ext --
191
   -------------
192
 
193
   function DLL_Ext return String is
194
   begin
195
      return DLL_Ext_Ptr.all;
196
   end DLL_Ext;
197
 
198
   ---------------------
199
   -- DLL_Ext_Default --
200
   ---------------------
201
 
202
   function DLL_Ext_Default return String is
203
   begin
204
      return "so";
205
   end DLL_Ext_Default;
206
 
207
   ----------------
208
   -- DLL_Prefix --
209
   ----------------
210
 
211
   function DLL_Prefix return String is
212
   begin
213
      return DLL_Prefix_Ptr.all;
214
   end DLL_Prefix;
215
 
216
   ------------------------
217
   -- DLL_Prefix_Default --
218
   ------------------------
219
 
220
   function DLL_Prefix_Default return String is
221
   begin
222
      return "lib";
223
   end DLL_Prefix_Default;
224
 
225
   --------------------
226
   -- Dynamic_Option --
227
   --------------------
228
 
229
   function Dynamic_Option return String is
230
   begin
231
      return Dynamic_Option_Ptr.all;
232
   end Dynamic_Option;
233
 
234
   ----------------------------
235
   -- Dynamic_Option_Default --
236
   ----------------------------
237
 
238
   function Dynamic_Option_Default return String is
239
   begin
240
      return "-shared";
241
   end Dynamic_Option_Default;
242
 
243
   -------------------
244
   -- Is_Object_Ext --
245
   -------------------
246
 
247
   function Is_Object_Ext (Ext : String) return Boolean is
248
   begin
249
      return Is_Object_Ext_Ptr (Ext);
250
   end Is_Object_Ext;
251
 
252
   ---------------------------
253
   -- Is_Object_Ext_Default --
254
   ---------------------------
255
 
256
   function Is_Object_Ext_Default (Ext : String) return Boolean is
257
   begin
258
      return Ext = ".o";
259
   end Is_Object_Ext_Default;
260
 
261
   --------------
262
   -- Is_C_Ext --
263
   --------------
264
 
265
   function Is_C_Ext (Ext : String) return Boolean is
266
   begin
267
      return Is_C_Ext_Ptr (Ext);
268
   end Is_C_Ext;
269
 
270
   ----------------------
271
   -- Is_C_Ext_Default --
272
   ----------------------
273
 
274
   function Is_C_Ext_Default (Ext : String) return Boolean is
275
   begin
276
      return Ext = ".c";
277
   end Is_C_Ext_Default;
278
 
279
   --------------------
280
   -- Is_Archive_Ext --
281
   --------------------
282
 
283
   function Is_Archive_Ext (Ext : String) return Boolean is
284
   begin
285
      return Is_Archive_Ext_Ptr (Ext);
286
   end Is_Archive_Ext;
287
 
288
   ----------------------------
289
   -- Is_Archive_Ext_Default --
290
   ----------------------------
291
 
292
   function Is_Archive_Ext_Default (Ext : String) return Boolean is
293
   begin
294
      return Ext = ".a";
295
   end Is_Archive_Ext_Default;
296
 
297
   -------------
298
   -- Libgnat --
299
   -------------
300
 
301
   function Libgnat return String is
302
   begin
303
      return Libgnat_Ptr.all;
304
   end Libgnat;
305
 
306
   ---------------------
307
   -- Libgnat_Default --
308
   ---------------------
309
 
310
   function Libgnat_Default return String is
311
   begin
312
      return "libgnat.a";
313
   end Libgnat_Default;
314
 
315
   ------------------------
316
   -- Library_Exists_For --
317
   ------------------------
318
 
319
   function Library_Exists_For
320
     (Project : Project_Id;
321
      In_Tree : Project_Tree_Ref) return Boolean
322
   is
323
   begin
324
      return Library_Exists_For_Ptr (Project, In_Tree);
325
   end Library_Exists_For;
326
 
327
   --------------------------------
328
   -- Library_Exists_For_Default --
329
   --------------------------------
330
 
331
   function Library_Exists_For_Default
332
     (Project : Project_Id;
333
      In_Tree : Project_Tree_Ref) return Boolean
334
   is
335
      pragma Unreferenced (In_Tree);
336
 
337
   begin
338
      if not Project.Library then
339
         Prj.Com.Fail ("INTERNAL ERROR: Library_Exists_For called " &
340
                       "for non library project");
341
         return False;
342
 
343
      else
344
         declare
345
            Lib_Dir  : constant String :=
346
                         Get_Name_String (Project.Library_Dir.Display_Name);
347
            Lib_Name : constant String :=
348
                         Get_Name_String (Project.Library_Name);
349
 
350
         begin
351
            if Project.Library_Kind = Static then
352
               return Is_Regular_File
353
                 (Lib_Dir & Directory_Separator & "lib" &
354
                  Fil.Append_To (Lib_Name, Archive_Ext));
355
 
356
            else
357
               return Is_Regular_File
358
                 (Lib_Dir & Directory_Separator & DLL_Prefix &
359
                  Fil.Append_To (Lib_Name, DLL_Ext));
360
            end if;
361
         end;
362
      end if;
363
   end Library_Exists_For_Default;
364
 
365
   ---------------------------
366
   -- Library_File_Name_For --
367
   ---------------------------
368
 
369
   function Library_File_Name_For
370
     (Project : Project_Id;
371
      In_Tree : Project_Tree_Ref) return File_Name_Type
372
   is
373
   begin
374
      return Library_File_Name_For_Ptr (Project, In_Tree);
375
   end Library_File_Name_For;
376
 
377
   -----------------------------------
378
   -- Library_File_Name_For_Default --
379
   -----------------------------------
380
 
381
   function Library_File_Name_For_Default
382
     (Project : Project_Id;
383
      In_Tree : Project_Tree_Ref) return File_Name_Type
384
   is
385
      pragma Unreferenced (In_Tree);
386
   begin
387
      if not Project.Library then
388
         Prj.Com.Fail ("INTERNAL ERROR: Library_File_Name_For called " &
389
                       "for non library project");
390
         return No_File;
391
 
392
      else
393
         declare
394
            Lib_Name : constant String :=
395
                         Get_Name_String (Project.Library_Name);
396
 
397
         begin
398
            if Project.Library_Kind =
399
                 Static
400
            then
401
               Name_Len := 3;
402
               Name_Buffer (1 .. Name_Len) := "lib";
403
               Add_Str_To_Name_Buffer (Fil.Append_To (Lib_Name, Archive_Ext));
404
            else
405
               Name_Len := 0;
406
               Add_Str_To_Name_Buffer (DLL_Prefix);
407
               Add_Str_To_Name_Buffer (Fil.Append_To (Lib_Name, DLL_Ext));
408
            end if;
409
 
410
            return Name_Find;
411
         end;
412
      end if;
413
   end Library_File_Name_For_Default;
414
 
415
   --------------------------------------
416
   -- Library_Major_Minor_Id_Supported --
417
   --------------------------------------
418
 
419
   function Library_Major_Minor_Id_Supported return Boolean is
420
   begin
421
      return Library_Major_Minor_Id_Supported_Ptr.all;
422
   end Library_Major_Minor_Id_Supported;
423
 
424
   ----------------------------------------------
425
   -- Library_Major_Minor_Id_Supported_Default --
426
   ----------------------------------------------
427
 
428
   function Library_Major_Minor_Id_Supported_Default return Boolean is
429
   begin
430
      return True;
431
   end Library_Major_Minor_Id_Supported_Default;
432
 
433
   ----------------
434
   -- Object_Ext --
435
   ----------------
436
 
437
   function Object_Ext return String is
438
   begin
439
      return Object_Ext_Ptr.all;
440
   end Object_Ext;
441
 
442
   ------------------------
443
   -- Object_Ext_Default --
444
   ------------------------
445
 
446
   function Object_Ext_Default return String is
447
   begin
448
      return "o";
449
   end Object_Ext_Default;
450
 
451
   ----------------
452
   -- PIC_Option --
453
   ----------------
454
 
455
   function PIC_Option return String is
456
   begin
457
      return PIC_Option_Ptr.all;
458
   end PIC_Option;
459
 
460
   ------------------------
461
   -- PIC_Option_Default --
462
   ------------------------
463
 
464
   function PIC_Option_Default return String is
465
   begin
466
      return "-fPIC";
467
   end PIC_Option_Default;
468
 
469
   -----------------------------------------------
470
   -- Standalone_Library_Auto_Init_Is_Supported --
471
   -----------------------------------------------
472
 
473
   function Standalone_Library_Auto_Init_Is_Supported return Boolean is
474
   begin
475
      return Standalone_Library_Auto_Init_Is_Supported_Ptr.all;
476
   end Standalone_Library_Auto_Init_Is_Supported;
477
 
478
   -------------------------------------------------------
479
   -- Standalone_Library_Auto_Init_Is_Supported_Default --
480
   -------------------------------------------------------
481
 
482
   function Standalone_Library_Auto_Init_Is_Supported_Default return Boolean is
483
   begin
484
      return True;
485
   end Standalone_Library_Auto_Init_Is_Supported_Default;
486
 
487
   ---------------------------
488
   -- Support_For_Libraries --
489
   ---------------------------
490
 
491
   function Support_For_Libraries return Library_Support is
492
   begin
493
      return Support_For_Libraries_Ptr.all;
494
   end Support_For_Libraries;
495
 
496
   -----------------------------------
497
   -- Support_For_Libraries_Default --
498
   -----------------------------------
499
 
500
   function Support_For_Libraries_Default return Library_Support is
501
   begin
502
      return Full;
503
   end Support_For_Libraries_Default;
504
 
505
end MLib.Tgt;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.