|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 4899 (0x1323)
Types: TextFile
Names: »B«
└─⟦407de186f⟧ Bits:30000749 8mm tape, Rational 1000, RCFSUN
└─⟦e5cd75ab4⟧ »DATA«
└─⟦this⟧
separate (Library_Extensions)
procedure Link_Postprocess (Main_Unit : String;
Executable_Name : String;
Status : in out Simple_Status.Condition) is
Main : Dt.Object.Handle := Dt.Naming.Resolution (Main_Unit);
Main_Full_Name : constant String := Dt.Naming.Full_Name (Main);
Main_Simple_Name : constant String :=
Su.Lower_Case (Dt.Naming.Simple_Name (Main));
Host_Exe_Name : constant String := Main_Full_Name & "'body" & ".<Exe>";
Host_Bind_Name : constant String := Main_Full_Name & "'body" & ".<bnd>";
Host_Cui_Name : constant String := Main_Full_Name & "'body" & ".<Cui>";
Name_Length : Natural;
Final_Name_Length : Natural;
Enclosing_View : Dt.Object.Handle := Dt.Traversal.Enclosing_World (Main);
Enclosing_View_Name : constant String :=
Dt.Naming.Full_Name (Enclosing_View);
Remote_Directory_Result : constant Library_Interface.String_Result :=
Library_Interface.Remote_Directory (Enclosing_View_Name);
Remote_Machine_Result : constant Library_Interface.String_Result :=
Library_Interface.Remote_Machine (Enclosing_View_Name);
Remote_Directory : constant String :=
Remote_Directory_Result.Result (1 .. Remote_Directory_Result.Size);
Remote_Machine : constant String :=
Remote_Machine_Result.Result (1 .. Remote_Machine_Result.Size);
function Is_True (For_Switch : String) return Boolean is
package Pio renames Polymorphic_Io;
package Si renames Switch_Implementation;
Switch_Handle : Pio.Handle;
Pio_Status : Pio.Error_Status;
Value : Boolean := False;
begin
Pio.Open (The_Handle => Switch_Handle,
Mode => Pio.Read_Only,
File_Name => Enclosing_View_Name & ".state.compiler_switches",
Status => Pio_Status);
Value := Si.Value (Switches => Switch_Handle, Name => For_Switch);
Pio.Close (File => Switch_Handle, Status => Pio_Status);
return Value;
end Is_True;
function Linker_Generated_Name
(Executable_Name : in String; Main_Unit_Name : in String)
return String is
begin
if Executable_Name /= "" then
return Executable_Name;
else
return Main_Unit_Name;
end if;
end Linker_Generated_Name;
begin
Log.Put_Line (Message => "Executing Link_Postprocess",
Kind => Profile.Note_Msg);
Log.Put_Line (Message => " The main unit name is " & Main_Unit,
Kind => Profile.Note_Msg);
Log.Put_Line (Message => " The remote_directory is " & Remote_Directory,
Kind => Profile.Note_Msg);
-- set context
Simple_Status.Initialize (Status);
declare
Remote_File_Name : constant String :=
Linker_Generated_Name (Executable_Name, Main_Simple_Name);
begin
--
-- Retrieval of Executable File
--
if Is_True (For_Switch =>
"Rcf.Sparc_unix_Alsys_Retrieve_Executable") then
Log.Put_Line (Message =>
"Initiating Retrieval of Executable file " &
Executable_Name & ".",
Kind => Profile.Positive_Msg);
Ftp.Get (From_Remote_File => Remote_File_Name,
To_Local_File => Host_Exe_Name,
Remote_Machine => Remote_Machine,
Remote_Directory => Remote_Directory,
Transfer_Type => Ftp_Defs.Local_Binary);
end if;
-- Retrieval of Map File
--
if Is_True (For_Switch => "Rcf.Sparc_unix_Alsys_Binder_Listing") then
Log.Put_Line (Message => "Initiating Retrieval of Map file " &
Remote_File_Name & ".bnd",
Kind => Profile.Positive_Msg);
Ftp.Get (From_Remote_File => Remote_File_Name & ".bnd",
To_Local_File => Host_Bind_Name,
Remote_Machine => Remote_Machine,
Remote_Directory => Remote_Directory);
end if;
--
-- Retrieval of Cui File
--
if Is_True (For_Switch => "Rcf.Sparc_unix_Alsys_Cui_File") then
Log.Put_Line (Message => "Initiating Retrieval of cui file " &
Remote_File_Name & ".cui",
Kind => Profile.Positive_Msg);
Ftp.Get (From_Remote_File => Remote_File_Name & ".cui",
To_Local_File => Host_Cui_Name,
Remote_Machine => Remote_Machine,
Remote_Directory => Remote_Directory);
end if;
end;
exception
when others =>
Unhandled_Exception (Status, "Link_Postprocess");
end Link_Postprocess;