diff --git a/doc/org.eclipse.cdt.doc.user/images/mpref.png b/doc/org.eclipse.cdt.doc.user/images/mpref.png new file mode 100644 index 00000000000..ecc5cf7ec9d Binary files /dev/null and b/doc/org.eclipse.cdt.doc.user/images/mpref.png differ diff --git a/doc/org.eclipse.cdt.doc.user/images/mpref_env.png b/doc/org.eclipse.cdt.doc.user/images/mpref_env.png new file mode 100644 index 00000000000..ecc5cf7ec9d Binary files /dev/null and b/doc/org.eclipse.cdt.doc.user/images/mpref_env.png differ diff --git a/doc/org.eclipse.cdt.doc.user/images/mpref_macro.PNG b/doc/org.eclipse.cdt.doc.user/images/mpref_macro.PNG new file mode 100644 index 00000000000..2e8941a8b9e Binary files /dev/null and b/doc/org.eclipse.cdt.doc.user/images/mpref_macro.PNG differ diff --git a/doc/org.eclipse.cdt.doc.user/images/mprop_env_new_prep.png b/doc/org.eclipse.cdt.doc.user/images/mprop_env_new_prep.png new file mode 100644 index 00000000000..f875278d50a Binary files /dev/null and b/doc/org.eclipse.cdt.doc.user/images/mprop_env_new_prep.png differ diff --git a/doc/org.eclipse.cdt.doc.user/images/mprop_env_new_repl.PNG b/doc/org.eclipse.cdt.doc.user/images/mprop_env_new_repl.PNG new file mode 100644 index 00000000000..4cf6d1fc6c0 Binary files /dev/null and b/doc/org.eclipse.cdt.doc.user/images/mprop_env_new_repl.PNG differ diff --git a/doc/org.eclipse.cdt.doc.user/images/mprop_macros_new_file.PNG b/doc/org.eclipse.cdt.doc.user/images/mprop_macros_new_file.PNG new file mode 100644 index 00000000000..54483bd0df8 Binary files /dev/null and b/doc/org.eclipse.cdt.doc.user/images/mprop_macros_new_file.PNG differ diff --git a/doc/org.eclipse.cdt.doc.user/images/mprop_macros_new_list_file.PNG b/doc/org.eclipse.cdt.doc.user/images/mprop_macros_new_list_file.PNG new file mode 100644 index 00000000000..46f15960cf2 Binary files /dev/null and b/doc/org.eclipse.cdt.doc.user/images/mprop_macros_new_list_file.PNG differ diff --git a/doc/org.eclipse.cdt.doc.user/reference/cdt_o_mproj_pref.htm b/doc/org.eclipse.cdt.doc.user/reference/cdt_o_mproj_pref.htm index d7c9474e36d..de899d77121 100644 --- a/doc/org.eclipse.cdt.doc.user/reference/cdt_o_mproj_pref.htm +++ b/doc/org.eclipse.cdt.doc.user/reference/cdt_o_mproj_pref.htm @@ -11,7 +11,19 @@

Managed Make Project preferences

- +

Customizes the managed make project settings for the +entire workspace.

+

+

+

The following settings may be customized:

+

IBM Copyright Statement

diff --git a/doc/org.eclipse.cdt.doc.user/reference/cdt_o_mproj_pref_env.htm b/doc/org.eclipse.cdt.doc.user/reference/cdt_o_mproj_pref_env.htm new file mode 100644 index 00000000000..f8ccf9bc299 --- /dev/null +++ b/doc/org.eclipse.cdt.doc.user/reference/cdt_o_mproj_pref_env.htm @@ -0,0 +1,43 @@ + + + + + + +Project properties + + + + + +

Managed Make Project preferences, Environment

+

Customizes the build environment for all managed make projects in the workspace.

+

+

+

You can add, remove and edit build process environment variables to be used for all managed make +projects in the workspace.  Two tables are displayed - one for user-defined environment variables +and one for non user-defined environment +variables. Each + table contains two columns:

+

Name of the environment variable

+

Value of the environment variable. 

+

You can view all environment variables that are not user-defined in the System + Variables table. 

+

You can view all user-defined variables in the User + Variables table.   + A user-defined variable overrides a non user-defined variable of the same + name.  Overridden variables are displayed in bold in + the System Variables table.

+

For more detailed information about the managed make Environment +settings, see the description in the Build Environment Property Pages.

+

Related reference

+

C/C++ +Project Properties, Managed, C/C++ Build, Environment

+

C/C++ +Project Properties, Managed, C/C++ Build, Build Macros

+

+Managed Build Project preferences, Macros

+ +

IBM Copyright Statement

+ + diff --git a/doc/org.eclipse.cdt.doc.user/reference/cdt_o_mproj_pref_macro.htm b/doc/org.eclipse.cdt.doc.user/reference/cdt_o_mproj_pref_macro.htm new file mode 100644 index 00000000000..a3f09a692d9 --- /dev/null +++ b/doc/org.eclipse.cdt.doc.user/reference/cdt_o_mproj_pref_macro.htm @@ -0,0 +1,42 @@ + + + + + + +Project properties + + + + + +

Managed Make Project preferences, Build Macros

+

Customizes the build macros for all managed make projects in the workspace.

+

+

+

You can add, remove and edit build macros that apply to all managed make projects in the workspace.  +Two tables are displayed - one for user-defined build macros and one for non user-defined build macros.  +Each table contains three columns:

+

Name of the build macro

+

Type of value contained in the build macro (see below)

+

Value of the build macro. 

+

You can view all build macros that are not user-defined in the System + Macros table.  

+

You can view all user-defined macros in the User + Macros table.   + A user-defined macro overrides a non user-defined macro of the same + name.  Overridden macros are displayed in bold in + the System Macros table.

+

For more detailed information about managed make project build macros +settings, see the description in the Build Macros Property Pages.

+

Related reference

+

C/C++ +Project Properties, Managed, C/C++ Build, Environment

+

C/C++ +Project Properties, Managed, C/C++ Build, Macros

+

+Managed Build Project preferences, Environment

+ +

IBM Copyright Statement

+ + diff --git a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_mprop_env.htm b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_mprop_env.htm index a73d417e7a5..a2e71dc682b 100644 --- a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_mprop_env.htm +++ b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_mprop_env.htm @@ -6,6 +6,16 @@ C/C++ Project Properties, Managed, Build + @@ -18,13 +28,131 @@ Customizes the environment variables to be used in building your build configura selected build configuration.
Configuration:
Select the build configuration from the list provided.
Manage...
You can add, remove and rename configurations.
-
Configuration Settings
To Be Added.
+
Configuration Settings
You can add, remove and edit + environment variables for a + project or configuration.  Each tab contains two tables - one for user-defined + environment variables and one for non user-defined environment + variables.  Each + table contains two columns:

Name of the environment variable

+

Value of the environment variable. 

+

You can view all environment variables that are not user-defined in the System + Variables table.  You + can choose to also display all variables defined for lower-precedence contexts + in the System Variables table by checking the Show parent level + variables checkbox. System variables are read-only.

+

You can view all user-defined variables in the User + Variables table.   + A user-defined variable overrides a non user-defined variable of the same + name for the given level.  Overridden variables are displayed in bold in + the System Variables table.

Restore Defaults
Returns any changes back to their default setting.
Apply
Applies any changes.
-

+ + +

Detailed Specification

+

Users and tool-chain integrators +can define the set of environment variables to be used while the build process +is executing.

+

Since the +environment variable names are case sensitive on Unix-like systems and case +insensitive on Windows systems, the Managed Build System (MBS) will treat the variable names in the same manner as the host system.

+ +

Build Environment variables can be +specified at several levels:

+
+

+ 1.      + Configuration level – variables specific to the selected configuration

+

+ 2.      + Project level – variables specific to the selected project and common + for all project configurations

+

+ 3.      + Workspace level – variables specific to the current workspace

+

+ 4.      + System environment passed to eclipse

+
+

When running the build utility for the +selected configuration, the process' total environment variables set will be +generated, including variables from all specified levels. Levels have +precedence over each other as specified in the above list, so for example if +configuration level and workspace level have a variable of the same name, the +configuration variable will take precedence, etc.

+

Users can create and delete environment variables +for any given project configuration, for the entire project or for the entire +workspace.

+

To create a new variable the "New" button should be +pressed. The dialog will appear representing the variable definition.

+

+

+

 

+

A variable definition contains the name, the value, the +delimiter and the "operation" to perform on the +variable of the same name defined at the lower-precedence level. The following +"operations" are defined: 

+

+·        +"append":  If the variable already exists, +add the user-specified value to the end of any existing value that the +environment variable has.  If the variable does not yet exist, create the +variable and set it to the user-specified value.

+

+·        +"prepend":  If the variable already +exists, add the user-specified value to beginning of any existing value that the +environment variable has.  If the variable does not yet exist, create the +variable and set it to the user-specified value.

+

+·        +"replace":  If the variable already +exists, set the value to the user-specified value.  If the variable does not yet +exist, create the variable and set it to the user-specified value.

+

+·        +"delete":  If the variable already exists, +remove the variable.

+

The resulting value of the variable used for the build process will be +calculated by querying all levels from bottom to top and performing the +operations for the variables defined at those levels.

+

The "Name" field contains the list of variables that are already defined. A user can +choose any variable from the list or enter a new variable name. When the +variable from the list is chosen or the name typed by the user matches already +defined variable name, the other fields of the dialog get filled with the +current value, delimiter and operation of that variable.

+

When the "replace" operation is selected, the "Value" field is used to +specify the variable value.

+

When either the "prepend" or "append" operation is selected, the "Value" +field becomes grayed and the "Prepended/Appended value" field becomes visible +that allows user to specify the value to be prepended/appended. The resulting +variable value will be automatically calculated and displayed in the "Value" +field. The delimiter to be used with append/prepend operations may be +specified in the "Delimiter" field.

+

+

+

When the "delete" operation is selected, the "Value", "Delimiter" and "Prepended/Appended +value" field becomes inaccessible.

+

When performing the variable value calculation the variable name case +sensitivity will be taken in account. That is on Windows systems the variables of +the different levels or provided by different suppliers whose names differ only +in case will be treated as the same variable, while on Unix-like systems where +case sensitive variable names are supported variables whose names will differ +only in case will be treated as different variables.

-

Related reference
+

Related reference
C++ Project Properties, Standard, Info
C++ Project Properties, Standard, Builders
C++ Project Properties, Standard, File Types
@@ -53,6 +181,9 @@ Customizes the environment variables to be used in building your build configura C++ Project Properties, Managed, C/C++ File Types
C++ Project Properties, Managed, C/C++ Indexer
C++ Project Properties, Managed, Project References

+

Managed Build Project preferences

+

Managed Build Project preferences, Environment

+

Managed Build Project preferences, Macros

IBM Copyright Statement diff --git a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_mprop_macros.htm b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_mprop_macros.htm index 2c5fe68c986..5e76c4af88c 100644 --- a/doc/org.eclipse.cdt.doc.user/reference/cdt_u_mprop_macros.htm +++ b/doc/org.eclipse.cdt.doc.user/reference/cdt_u_mprop_macros.htm @@ -18,7 +18,7 @@ -

C/C++ Project Properties, Managed, C/C++ Build, Macros

+

C/C++ Project Properties, Managed, C/C++ Build, Build Macros

Customizes the build macros used in your build configuration.

C/C++ Project Properties, Managed, C/C++ Build, Macros

@@ -27,9 +27,9 @@ Customizes the build macros used in your build configuration.

selected build configuration.

Configuration:
Select the build configuration from the list provided.
Manage...
You can add, remove and rename configurations.
-
Configuration Settings
You can add and remove build macros for a - project or configuration.  Each tab contains two tables - one for User - defined build macros and one for non user-defined build macros.  Each +
Configuration Settings
You can add, remove and edit build macros for a + project or configuration.  Each tab contains two tables - one for user-defined + build macros and one for non user-defined build macros.  Each table contains three columns:

Name of the build macro

Type of value contained in the build macro (see below)

Value of the build macro. 

@@ -37,7 +37,7 @@ Customizes the build macros used in your build configuration.

Macros table.  You can choose to also display all macros defined for lower-precedence contexts in the System Macros table by checking the Show parent context - macros checkbox.

+ macros checkbox. System macros are read-only.

You can view all user-defined macros in the User Macros table.   A user-defined macro overrides a non user-defined macro of the same @@ -56,8 +56,8 @@ There are no special restrictions on a macro name, though it is encouraged that a letter and contain only letters, digits and underscore signs. Build macro names are case sensitive.
If the actual value of text property contains ${text}, it must be pre-pended -with the backslash in order to distinguish it from a build macro. The Managed -Build System pre-defines many useful macros (see below) and allows tool +with a backslash in order to distinguish it from a build macro. The Managed +Build System (MBS) pre-defines many useful macros (see below) and allows tool integrators and users to define additional macros.

Build Macros can hold several types of values:

@@ -99,37 +99,43 @@ Several contexts are defined:

The process environment variables defined in the environment passed to Eclipse. -

Users can define new macros for any project or -configuration of a project.  The value of a build macro will be searched +

Users can define and delete macros +for any given project configuration, for the entire project or for the entire +workspace.

+

The value of a build macro will be searched for in the order specified above. If macro is not found for the currently selected file context, the currently selected option context will be used, if not found, the currently selected configuration context will be used, etc. 

+

To define a new macro the "New" button should be pressed. +A dialog will appear representing the macro definition.

+

+

+

The "Name" field contains the list of macros that are already defined. A user can +choose any variable from the list or enter a new variable name. When a macro +from the list is chosen or the name typed by the user matches already existing +macro name, the other fields of the dialog get filled with the value, and value +type of that macro.

+

When either of the "String", "File", "Directory" or "File or Directory" value +types is selected, the macro value may be specified with the "Value" edit-box. +For the "File" and "Directory" types a "Browse" button is also displayed that +allows selecting file or directory using the "Browse" dialog.

+

When either of the "List of Strings", "List of Files", "List of Directories" +or "List Files or Directories" value types is selected, the macro value may be +specified with the "Macro Value" multi-line text box and button bar.

+

+

+

 

Macro resolution takes place when the build file is being generated.

-All macros except +All macros except the build process environment macros always get resolved in the makefile.  -See the ??“expand build environment macrosâ€? checkbox in the “Build Settingsâ€? tab -of the “C/C++ Buildâ€?. +See the “Expand Build Environment Macros" checkbox in the “Build Settings" tab +of the “C/C++ Build" page.

The Managed Build System pre-defines many useful macros described in the following tables:

File-specific macros

-

The set of file-context macros is MBS-predefined, neither a -tool-integrator nor a user can define new file-context macros, but a -tool-integrator can specify the values for the file-context macros using -attributes of a builder element. The macro values specified in those attributes -should not contain the explicit e.g. file name, but instead should provide the -filename definition in terms of the builder automatic variables and text -functions. This is needed to allow the makefile generator to generate pattern -rules, e.g. in the case of Gnu make, the macro that represents the output file -name will contain the “$(notdir $@)? value. The builder definition of the gnu -tool-chain will contain attribute specifying the value for that macro. If a -tool-integrator does not provide the values for the file-specific macros, MBS -will automatically expand them to their actual value when generating the -buildfile, e.g. for the foo.c file the macro that represents the input file name -will contain “foo.c? in this case. In this case the makefile generator will not -be able to use pattern rules for building files with options containing -file-specific macros. (see the “Supplying the file-context macros values? -section for more detail)

+

The set of file-context macros is predefined by the Managed Build System (MBS). Neither a +tool-integrator nor a user can define new file-context macros.

@@ -436,7 +442,7 @@ section for more detail)

-

Related reference
+

Related reference
C++ Project Properties, Standard, Info
C++ Project Properties, Standard, Builders
C++ Project Properties, Standard, File Types
@@ -465,6 +471,9 @@ section for more detail)

C++ Project Properties, Managed, C/C++ File Types
C++ Project Properties, Managed, C/C++ Indexer
C++ Project Properties, Managed, Project References

+

Managed Build Project preferences

+

Managed Build Project preferences, Environment

+

Managed Build Project preferences, Macros

IBM Copyright Statement diff --git a/doc/org.eclipse.cdt.doc.user/tasks/cdt_o_build_task.htm b/doc/org.eclipse.cdt.doc.user/tasks/cdt_o_build_task.htm index a90be5bc15e..b679cd4788e 100644 --- a/doc/org.eclipse.cdt.doc.user/tasks/cdt_o_build_task.htm +++ b/doc/org.eclipse.cdt.doc.user/tasks/cdt_o_build_task.htm @@ -13,11 +13,12 @@

This sections explains how to build your project and manage compile errors.

Renaming a project
Selecting referenced projects
- Defining build settings
+ Defining Standard Make build settings
+ Defining Managed Make build settings
Filtering errors
Selecting a binary parser
Adding Include paths and symbols
- Selecting a deployment platform
+ Selecting a project type
Setting build order
Building Manually
Removing Build Automatically
diff --git a/doc/org.eclipse.cdt.doc.user/tasks/cdt_o_tasks.htm b/doc/org.eclipse.cdt.doc.user/tasks/cdt_o_tasks.htm index 05d8b7e131c..a21ff0fc391 100644 --- a/doc/org.eclipse.cdt.doc.user/tasks/cdt_o_tasks.htm +++ b/doc/org.eclipse.cdt.doc.user/tasks/cdt_o_tasks.htm @@ -21,6 +21,7 @@ Creating a makefile
Hiding files by type in the C/C++ Projects view
Converting CDT 1.x Projects
+ Converting CDT 2.x Managed Make Projects
Adding Convert to a C/C++ Make Project to the New menu
Set Discovery Options
Writing code
diff --git a/doc/org.eclipse.cdt.doc.user/topics_Reference.xml b/doc/org.eclipse.cdt.doc.user/topics_Reference.xml index db34d72246d..5a3a072e36f 100644 --- a/doc/org.eclipse.cdt.doc.user/topics_Reference.xml +++ b/doc/org.eclipse.cdt.doc.user/topics_Reference.xml @@ -60,7 +60,10 @@ - + + + + @@ -74,7 +77,7 @@ - +