Commit df777314 by Jose Ruiz Committed by Arnaud Charlet

gnatcmd.adb (B_Start): Add prefix of binder generated file.

2007-04-06  Jose Ruiz  <ruiz@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (B_Start): Add prefix of binder generated file.
	(Stack_String): Add this String that contains the name of the Stack
	package in the project file.
	(Packages_To_Check_By_Stack): Add this list that contains the packages
	to be checked by gnatstack, which are the naming and the stack packages.
	(Check_Files): If no .ci files were specified for gnatstack we add all
	the .ci files belonging to the projects, including binder generated
	files.
	(Non_VMS_Usage): Document that gnatstack accept project file switches.
	(GNATCmd): Update the B_Start variable if we are in a VMS environment.
	Add gnatstack to the list of commands that use project file related
	switches, and get the single attribute Switches from the stack package
	in a project file when calling gnatstack. Parse the -U flag for
	processing files belonging to all projects in the project tree.
	Remove all processing for command Setup

	* prj-attr.adb: Add new package Stack with single attribute Switches

	* vms_conv.ads (Command_Type): Add command Stack.
	Move to body declarations that are only used in the body: types Item_Id,
	Translation_Type, Item_Ptr, Item and its subtypes.

	* vms_conv.adb: (Initialize): Add data for new command Stack.
	Add declarations moved from the spec: types Item_Id, Translation_Type,
	Item_Ptr, Item and its subtypes.
	(Cargs_Buffer): New table
	(Cargs): New Boolean global variable
	(Process_Buffer): New procedure to create arguments
	(Place): Put character in table Buffer or Cargs_Buffer depending on the
	 value of Cargs.
	(Process_Argument): Set Cargs when processing qualifiers for GNAT
	COMPILE
	(VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
	empty, for table Cargs_Buffer.
	(Initialize): Remove component Setup in Command_List

From-SVN: r123575
parent cf6ba14a
......@@ -191,6 +191,11 @@ package body Prj.Attr is
"SVvcs_file_check#" &
"SVvcs_log_check#" &
-- package Stack
"Pstack#" &
"LVswitches#" &
-- package Language_Processing
"Planguage_processing#" &
......
......@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 2003-2005, Free Software Foundation, Inc. --
-- Copyright (C) 2003-2006, Free Software Foundation, Inc. --
-- --
-- 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- --
......@@ -109,8 +109,8 @@ package VMS_Conv is
Name,
Preprocess,
Pretty,
Setup,
Shared,
Stack,
Stub,
Xref,
Undefined);
......@@ -158,134 +158,6 @@ package VMS_Conv is
-- an extension already.
end record;
-------------------------
-- Internal Structures --
-------------------------
-- The switches and commands are defined by strings in the previous
-- section so that they are easy to modify, but internally, they are
-- kept in a more conveniently accessible form described in this
-- section.
-- Commands, command qualifers and options have a similar common format
-- so that searching for matching names can be done in a common manner.
type Item_Id is (Id_Command, Id_Switch, Id_Option);
type Translation_Type is
(
T_Direct,
-- A qualifier with no options.
-- Example: GNAT MAKE /VERBOSE
T_Directories,
-- A qualifier followed by a list of directories
-- Example: GNAT COMPILE /SEARCH=([], [.FOO], [.BAR])
T_Directory,
-- A qualifier followed by one directory
-- Example: GNAT LIBRARY /SET=[.VAXFLOATLIB]
T_File,
-- A qualifier followed by a filename
-- Example: GNAT LINK /EXECUTABLE=FOO.EXE
T_No_Space_File,
-- A qualifier followed by a filename
-- Example: GNAT MAKE /PROJECT_FILE=PRJ.GPR
T_Numeric,
-- A qualifier followed by a numeric value.
-- Example: GNAT CHOP /FILE_NAME_MAX_LENGTH=39
T_String,
-- A qualifier followed by a quoted string. Only used by
-- /IDENTIFICATION qualifier.
-- Example: GNAT LINK /IDENTIFICATION="3.14a1 version"
T_Options,
-- A qualifier followed by a list of options.
-- Example: GNAT COMPILE /REPRESENTATION_INFO=(ARRAYS,OBJECTS)
T_Commands,
-- A qualifier followed by a list. Only used for
-- MAKE /COMPILER_QUALIFIERS /BINDER_QUALIFIERS /LINKER_QUALIFIERS
-- (gnatmake -cargs -bargs -largs )
-- Example: GNAT MAKE ... /LINKER_QUALIFIERS /VERBOSE FOOBAR.OBJ
T_Other,
-- A qualifier passed directly to the linker. Only used
-- for LINK and SHARED if no other match is found.
-- Example: GNAT LINK FOO.ALI /SYSSHR
T_Alphanumplus
-- A qualifier followed by a legal linker symbol prefix. Only used
-- for BIND /BUILD_LIBRARY (gnatbind -Lxyz).
-- Example: GNAT BIND /BUILD_LIBRARY=foobar
);
type Item (Id : Item_Id);
type Item_Ptr is access all Item;
type Item (Id : Item_Id) is record
Name : String_Ptr;
-- Name of the command, switch (with slash) or option
Next : Item_Ptr;
-- Pointer to next item on list, always has the same Id value
Command : Command_Type := Undefined;
Unix_String : String_Ptr := null;
-- Corresponding Unix string. For a command, this is the unix command
-- name and possible default switches. For a switch or option it is
-- the unix switch string.
case Id is
when Id_Command =>
Switches : Item_Ptr;
-- Pointer to list of switch items for the command, linked
-- through the Next fields with null terminating the list.
Usage : String_Ptr;
-- Usage information, used only for errors and the default
-- list of commands output.
Params : Parameter_Ref;
-- Array of parameters
Defext : String (1 .. 3);
-- Default extension. If non-blank, then this extension is
-- supplied by default as the extension for any file parameter
-- which does not have an extension already.
when Id_Switch =>
Translation : Translation_Type;
-- Type of switch translation. For all cases, except Options,
-- this is the only field needed, since the Unix translation
-- is found in Unix_String.
Options : Item_Ptr;
-- For the Options case, this field is set to point to a list
-- of options item (for this case Unix_String is null in the
-- main switch item). The end of the list is marked by null.
when Id_Option =>
null;
-- No special fields needed, since Name and Unix_String are
-- sufficient to completely described an option.
end case;
end record;
subtype Command_Item is Item (Id_Command);
subtype Switch_Item is Item (Id_Switch);
subtype Option_Item is Item (Id_Option);
-------------------
-- Switch Tables --
-------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment