OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / ada / mlib.adb
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT COMPILER COMPONENTS                         --
4 --                                                                          --
5 --                                 M L I B                                  --
6 --                                                                          --
7 --                                 B o d y                                  --
8 --                                                                          --
9 --                                                                          --
10 --           Copyright (C) 1999-2001, Ada Core Technologies, Inc.           --
11 --                                                                          --
12 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
13 -- terms of the  GNU General Public License as published  by the Free Soft- --
14 -- ware  Foundation;  either version 2,  or (at your option) any later ver- --
15 -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
16 -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
17 -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
18 -- for  more details.  You should have  received  a copy of the GNU General --
19 -- Public License  distributed with GNAT;  see file COPYING.  If not, write --
20 -- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
21 -- MA 02111-1307, USA.                                                      --
22 --                                                                          --
23 -- GNAT was originally developed  by the GNAT team at  New York University. --
24 -- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). --
25 --                                                                          --
26 ------------------------------------------------------------------------------
27
28 with Ada.Characters.Handling; use Ada.Characters.Handling;
29 with Opt;
30 with Osint;    use Osint;
31 with Output;   use Output;
32 with MLib.Utl;
33
34 package body MLib is
35
36    package Tools renames MLib.Utl;
37
38    -------------------
39    -- Build_Library --
40    -------------------
41
42    procedure Build_Library
43      (Ofiles      : Argument_List;
44       Afiles      : Argument_List;
45       Output_File : String;
46       Output_Dir  : String)
47    is
48       pragma Warnings (Off, Afiles);
49
50       use GNAT.OS_Lib;
51
52    begin
53       if not Opt.Quiet_Output then
54          Write_Line ("building a library...");
55          Write_Str  ("   make ");
56          Write_Line (Output_File);
57       end if;
58
59       Tools.Ar (Output_Dir & "/lib" & Output_File & ".a", Objects => Ofiles);
60
61    end Build_Library;
62
63    ------------------------
64    -- Check_Library_Name --
65    ------------------------
66
67    procedure Check_Library_Name (Name : String) is
68    begin
69       if Name'Length = 0 then
70          Fail ("library name cannot be empty");
71       end if;
72
73       if Name'Length > Max_Characters_In_Library_Name then
74          Fail ("illegal library name """,
75                Name,
76                """: too long");
77       end if;
78
79       if not Is_Letter (Name (Name'First)) then
80          Fail ("illegal library name """,
81                Name,
82                """: should start with a letter");
83       end if;
84
85       for Index in Name'Range loop
86          if not Is_Alphanumeric (Name (Index)) then
87             Fail ("illegal library name """,
88                   Name,
89                   """: should include only letters and digits");
90          end if;
91       end loop;
92    end Check_Library_Name;
93
94 end MLib;