make.adb (Gnatmake): Add to table Library_Projs only library projects that are not...
authorVincent Celier <celier@adacore.com>
Wed, 3 Aug 2011 12:36:13 +0000 (12:36 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 3 Aug 2011 12:36:13 +0000 (14:36 +0200)
2011-08-03  Vincent Celier  <celier@adacore.com>

* make.adb (Gnatmake): Add to table Library_Projs only library projects
that are not extended. Do not check if a library project that is
extended should be regenerated. Do not add to table Library_Paths the
libraries that are in extended projects. Link only with libraries that
are in libray projects that are not extended.
* prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
for a library project that is extended.

From-SVN: r177269

gcc/ada/ChangeLog
gcc/ada/make.adb
gcc/ada/prj-nmsc.adb

index 43e546c96ba11b2ac341b51b29d9b05c2b2a6a08..6afbcd295c8dddbf52ab4ead916a5fd364876992 100644 (file)
@@ -1,3 +1,13 @@
+2011-08-03  Vincent Celier  <celier@adacore.com>
+
+       * make.adb (Gnatmake): Add to table Library_Projs only library projects
+       that are not extended. Do not check if a library project that is
+       extended should be regenerated. Do not add to table Library_Paths the
+       libraries that are in extended projects. Link only with libraries that
+       are in libray projects that are not extended.
+       * prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
+       for a library project that is extended.
+
 2011-08-03  Gary Dismukes  <dismukes@adacore.com>
 
        * sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip
index 0eca00878efc2191232ed8e7393cf49998125df4..6be04b1569996fd79d753b507bd1d539766a4773 100644 (file)
@@ -5530,17 +5530,19 @@ package body Make is
 
                      Proj1 := Project_Tree.Projects;
                      while Proj1 /= null loop
-                        if Proj1.Project.Standalone_Library then
-                           Stand_Alone_Libraries := True;
-                        end if;
+                        if Proj1.Project.Extended_By = No_Project then
+                           if Proj1.Project.Standalone_Library then
+                              Stand_Alone_Libraries := True;
+                           end if;
 
-                        if Proj1.Project.Library then
-                           MLib.Prj.Check_Library
-                             (Proj1.Project, Project_Tree);
-                        end if;
+                           if Proj1.Project.Library then
+                              MLib.Prj.Check_Library
+                                (Proj1.Project, Project_Tree);
+                           end if;
 
-                        if Proj1.Project.Need_To_Build_Lib then
-                           Add_To_Library_Projs (Proj1.Project);
+                           if Proj1.Project.Need_To_Build_Lib then
+                              Add_To_Library_Projs (Proj1.Project);
+                           end if;
                         end if;
 
                         Proj1 := Proj1.Next;
@@ -5553,6 +5555,7 @@ package body Make is
                      Proj1 := Project_Tree.Projects;
                      while Proj1 /= null loop
                         if Proj1.Project.Library
+                          and then Proj1.Project.Extended_By = No_Project
                           and then Proj1.Project.Library_Kind /= Static
                           and then not Proj1.Project.Need_To_Build_Lib
                           and then not Proj1.Project.Externally_Built
@@ -5898,11 +5901,10 @@ package body Make is
                   --  except those of library projects.
 
                   Prj.Env.Set_Ada_Paths
-                    (Main_Project, Project_Tree, Use_Include_Path_File);
-                  --  (Project => Main_Project,
-                  --   In_Tree => Project_Tree,
-                  --   Including_Libraries => True,
-                  --   Include_Path => Use_Include_Path_File);
+                    (Project => Main_Project,
+                     In_Tree => Project_Tree,
+                     Including_Libraries => False,
+                     Include_Path => Use_Include_Path_File);
 
                   --  If switch -C was specified, create a binder mapping file
 
@@ -6000,6 +6002,7 @@ package body Make is
                            --  is set, add it to the Library_Paths table.
 
                            if Proj1.Project.Library_Kind /= Static
+                             and then Proj1.Project.Extended_By = No_Project
                              and then Path_Option /= null
                            then
                               Library_Paths.Increment_Last;
@@ -6014,39 +6017,44 @@ package body Make is
                      end loop;
 
                      for Index in 1 .. Library_Projs.Last loop
-                        if Library_Projs.Table (Index).Library_Kind = Static
-                          and then not Targparm.OpenVMS_On_Target
+                        if
+                          Library_Projs.Table (Index).Extended_By = No_Project
                         then
-                           Linker_Switches.Increment_Last;
-                           Linker_Switches.Table (Linker_Switches.Last) :=
-                             new String'
-                               (Get_Name_String
-                                 (Library_Projs.Table
-                                   (Index).Library_Dir.Display_Name) &
-                                "lib" &
-                                Get_Name_String
-                                  (Library_Projs.Table (Index). Library_Name) &
-                                "." &
-                                MLib.Tgt.Archive_Ext);
+                           if Library_Projs.Table (Index).Library_Kind = Static
+                             and then not Targparm.OpenVMS_On_Target
+                           then
+                              Linker_Switches.Increment_Last;
+                              Linker_Switches.Table (Linker_Switches.Last) :=
+                                new String'
+                                  (Get_Name_String
+                                       (Library_Projs.Table
+                                            (Index).Library_Dir.Display_Name) &
+                                   "lib" &
+                                   Get_Name_String
+                                     (Library_Projs.Table
+                                        (Index).Library_Name) &
+                                   "." &
+                                   MLib.Tgt.Archive_Ext);
 
-                        else
-                           --  Add the -L switch
-
-                           Linker_Switches.Increment_Last;
-                           Linker_Switches.Table (Linker_Switches.Last) :=
-                             new String'("-L" &
-                               Get_Name_String
-                                 (Library_Projs.Table (Index).
-                                    Library_Dir.Display_Name));
-
-                           --  Add the -l switch
-
-                           Linker_Switches.Increment_Last;
-                           Linker_Switches.Table (Linker_Switches.Last) :=
-                             new String'("-l" &
-                               Get_Name_String
-                                 (Library_Projs.Table (Index).
-                                    Library_Name));
+                           else
+                              --  Add the -L switch
+
+                              Linker_Switches.Increment_Last;
+                              Linker_Switches.Table (Linker_Switches.Last) :=
+                                new String'("-L" &
+                                  Get_Name_String
+                                    (Library_Projs.Table (Index).
+                                       Library_Dir.Display_Name));
+
+                              --  Add the -l switch
+
+                              Linker_Switches.Increment_Last;
+                              Linker_Switches.Table (Linker_Switches.Last) :=
+                                new String'("-l" &
+                                  Get_Name_String
+                                    (Library_Projs.Table (Index).
+                                       Library_Name));
+                           end if;
                         end if;
                      end loop;
                   end if;
@@ -6080,9 +6088,9 @@ package body Make is
                                  Linker_Switches.Increment_Last;
                                  Linker_Switches.Table
                                    (Linker_Switches.Last) :=
-                                     new String'
-                                       (Path_Option.all &
-                                        Library_Paths.Table (Index).all);
+                                   new String'
+                                     (Path_Option.all &
+                                      Library_Paths.Table (Index).all);
                               end loop;
 
                               --  One switch for the standard GNAT library dir
index 0362277df5c9416794ce3dc43890f596f1d92e28..6c79fdec8d144ef1e07705806e59098bb74c832a 100644 (file)
@@ -4271,8 +4271,6 @@ package body Prj.Nmsc is
                exit;
             end if;
          end loop;
-
-         Project.Extends.Library := False;
       end if;
 
       if Project.Library and then not Lib_Name.Default then