Write_Str (" library for project ");
Write_Line (Project_Name);
- Write_Eol;
+ -- Only output the list of object files and ALI files in verbose
+ -- mode.
- Write_Line ("object files:");
+ if Opt.Verbose_Mode then
+ Write_Eol;
- for Index in Object_Files'Range loop
- Write_Str (" ");
- Write_Line (Object_Files (Index).all);
- end loop;
+ Write_Line ("object files:");
- Write_Eol;
+ for Index in Object_Files'Range loop
+ Write_Str (" ");
+ Write_Line (Object_Files (Index).all);
+ end loop;
- if Ali_Files'Length = 0 then
- Write_Line ("NO ALI files");
+ Write_Eol;
- else
- Write_Line ("ALI files:");
+ if Ali_Files'Length = 0 then
+ Write_Line ("NO ALI files");
- for Index in Ali_Files'Range loop
- Write_Str (" ");
- Write_Line (Ali_Files (Index).all);
- end loop;
- end if;
+ else
+ Write_Line ("ALI files:");
- Write_Eol;
+ for Index in Ali_Files'Range loop
+ Write_Str (" ");
+ Write_Line (Ali_Files (Index).all);
+ end loop;
+ end if;
+
+ Write_Eol;
+ end if;
end if;
-- We check that all object files are regular files
end if;
Write_Char (' ');
+
+ -- Only output the first object files when not in verbose mode
+
+ if (not Opt.Verbose_Mode) and then J = Ar_Options'Length + 3 then
+ Write_Str ("...");
+ exit;
+ end if;
+
Write_Str (Arguments (J).all);
Line_Length := Line_Length + 1 + Arguments (J)'Length;
end loop;
Driver : String_Access;
+ type Object_Position is (First, Second, Last);
+
+ Position : Object_Position;
+
begin
if Driver_Name = No_Name then
if Gcc_Exec = null then
A := A + Options'Length;
Arguments (A - Options'Length + 1 .. A) := Options;
- A := A + Objects'Length;
- Arguments (A - Objects'Length + 1 .. A) := Objects;
-
- A := A + Options_2'Length;
- Arguments (A - Options_2'Length + 1 .. A) := Options_2;
-
if not Opt.Quiet_Output then
Write_Str (Driver.all);
Write_Str (Arguments (J).all);
end loop;
+ -- Do not display all the object files if not in verbose mode, only
+ -- the first one.
+
+ Position := First;
+ for J in Objects'Range loop
+ if Opt.Verbose_Mode or else Position = First then
+ Write_Char (' ');
+ Write_Str (Objects (J).all);
+ Position := Second;
+
+ elsif Position = Second then
+ Write_Str (" ...");
+ Position := Last;
+ end if;
+ end loop;
+
+ for J in Options_2'Range loop
+ Write_Char (' ');
+ Write_Str (Options_2 (J).all);
+ end loop;
+
Write_Eol;
end if;
+ A := A + Objects'Length;
+ Arguments (A - Objects'Length + 1 .. A) := Objects;
+
+ A := A + Options_2'Length;
+ Arguments (A - Options_2'Length + 1 .. A) := Options_2;
+
OS_Lib.Spawn (Driver.all, Arguments (1 .. A), Success);
if not Success then
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2005, AdaCore --
+-- Copyright (C) 1999-2006, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
pragma Warnings (Off, Afiles);
begin
- if not Opt.Quiet_Output then
+ if Opt.Verbose_Mode and not Opt.Quiet_Output then
Write_Line ("building a library...");
Write_Str (" make ");
Write_Line (Output_File);