Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Repackaging managed builder - take 2

OK,
Here is the re-re-packaged managed build code. A short description of the 
changes needed to accommodate Dave Inglis' patch from September 11 are 
included in the change log for the new managedbuilder.ui project. I have 
done a reasonably thorough test on Win32 and Linux, but frankly, I'd wait 
until Doug gives this one his blessing before applying it.

Sean Evoy
Rational Software - IBM Software Group
Ottawa, Ontario, Canada

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/ChangeLog,v
retrieving revision 1.147
diff -u -r1.147 ChangeLog
--- ChangeLog	12 Sep 2003 18:51:45 -0000	1.147
+++ ChangeLog	15 Sep 2003 19:00:09 -0000
@@ -1,3 +1,8 @@
+2003-09-15 Sean Evoy
+	Moved the managed builder build model core components, externalized strings, 
+	plugin definition, schema and plugin declarations into the new 
+	managedbuilder.core project.
+
 2003-09-12 Alain Magloire
 	Patch from Bogdan Gheorghe, it corrected a NPE, when dealing with file extensions.
 	In a Unix enviroment binaries do not have extensions also some C++ headers
Index: plugin.properties
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/plugin.properties,v
retrieving revision 1.11
diff -u -r1.11 plugin.properties
--- plugin.properties	31 Aug 2003 04:42:14 -0000	1.11
+++ plugin.properties	15 Sep 2003 19:00:09 -0000
@@ -16,8 +16,4 @@
 genericmake.name=Generic Make
 makebuildmodel.name=Make Builder
 
-ManagedBuildNature.name=Managed C/C++ Build Nature
-
-GeneratedMakefileCBuilder.name=Generated Makefile C/C++ Builder
-
 CTaskName=C/C++ Task
Index: plugin.xml
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/plugin.xml,v
retrieving revision 1.29
diff -u -r1.29 plugin.xml
--- plugin.xml	12 Sep 2003 18:19:05 -0000	1.29
+++ plugin.xml	15 Sep 2003 19:00:09 -0000
@@ -69,7 +69,6 @@
    <extension-point id="CTool" name="C/C++ Tool" schema="schema/CTool.exsd"/>
    <extension-point id="CBuildVariable" name="C/C++ Build Variable" schema="schema/CBuildVariable.exsd"/>
    <extension-point id="CToolType" name="C/C++ Tool Type" schema="schema/CToolType.exsd"/>
-   <extension-point id="ManagedBuildInfo" name="Managed Build Tools" schema="schema/ManagedBuildTools.exsd"/>
    <extension-point id="ScannerInfoProvider" name="Scanner Information Provider"/>
 
 
@@ -220,22 +219,6 @@
    </extension>
 
 <!-- =================================================================================== -->
-<!-- Extension Point: ????????????????                                                   -->
-<!-- =================================================================================== -->
-
-   <extension
-         id="genmakebuilder"
-         name="%GeneratedMakefileCBuilder.name"
-         point="org.eclipse.core.resources.builders">
-      <builder
-            hasNature="true">
-         <run
-               class="org.eclipse.cdt.internal.core.GeneratedMakefileBuilder">
-         </run>
-      </builder>
-   </extension>
-
-<!-- =================================================================================== -->
 <!-- CDT customized problem markers: C Problem markers                                   -->
 <!-- =================================================================================== -->
 
@@ -281,26 +264,6 @@
       </runtime>
    </extension>
 
-<!-- =================================================================================== -->
-<!-- Extension Point: ????????????????                                                   -->
-<!-- =================================================================================== -->
-
-   <extension
-         id="managedBuildNature"
-         name="%ManagedBuildNature.name"
-         point="org.eclipse.core.resources.natures">
-      <requires-nature
-            id="org.eclipse.cdt.core.cnature">
-      </requires-nature>
-      <runtime>
-         <run
-               class="org.eclipse.cdt.core.ManagedCProjectNature">
-         </run>
-      </runtime>
-      <builder
-            id="org.eclipse.cdt.core.genmakebuilder">
-      </builder>
-   </extension>
 
 <!-- =================================================================================== -->
 <!-- Deprecated Make default command, will be removed.                                   -->
@@ -429,20 +392,6 @@
             enabled="true"
             pattern="*.exe">
       </ignore>
-   </extension>
-
-<!-- =================================================================================== -->
-<!-- Extension Point(Note:Temporary): IScannerInfoProvider for the managed Builder       -->
-<!-- =================================================================================== -->
-
-   <extension
-         id="ManagedBuildManager"
-         point="org.eclipse.cdt.core.ScannerInfoProvider">
-      <cextension>
-         <run
-               class="org.eclipse.cdt.core.build.managed.ManagedBuildManager">
-         </run>
-      </cextension>
    </extension>
 
 <!-- =================================================================================== -->
Index: build/org/eclipse/cdt/core/build/managed/BuildException.java
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/BuildException.java
diff -N build/org/eclipse/cdt/core/build/managed/BuildException.java
--- build/org/eclipse/cdt/core/build/managed/BuildException.java	9 Apr 2003 15:14:55 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-/*
- * Created on Apr 9, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.cdt.core.build.managed;
-
-/**
- * @author dschaefe
- *
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class BuildException extends Exception {
-
-	public BuildException(String msg) {
-		super(msg);
-	}
-
-}
Index: build/org/eclipse/cdt/core/build/managed/IBuildObject.java
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/IBuildObject.java
diff -N build/org/eclipse/cdt/core/build/managed/IBuildObject.java
--- build/org/eclipse/cdt/core/build/managed/IBuildObject.java	31 Jul 2003 13:20:37 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.core.build.managed;
-
-public interface IBuildObject {
-	// Schema element names
-	public static final String ID = "id";
-	public static final String NAME = "name";
-
-	public String getId();
-	public String getName();
-	
-}
Index: build/org/eclipse/cdt/core/build/managed/IConfiguration.java
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/IConfiguration.java
diff -N build/org/eclipse/cdt/core/build/managed/IConfiguration.java
--- build/org/eclipse/cdt/core/build/managed/IConfiguration.java	11 Sep 2003 14:46:14 -0000	1.8
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,75 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.core.build.managed;
-
-import org.eclipse.core.resources.IResource;
-
-public interface IConfiguration extends IBuildObject {
-	// Schema element names
-	public static final String CONFIGURATION_ELEMENT_NAME = "configuration";	//$NON-NLS-1$
-	public static final String TOOL_REF = "toolReference";	//$NON-NLS-1$
-	public static final String PARENT = "parent";	//$NON-NLS-1$
-
-	/**
-	 * Returns the target for this configuration.
-	 * 
-	 * @return
-	 */
-	public ITarget getTarget();
-	
-	/**
-	 * Returns the resource that owns the target that owns the configuration.
-	 * @return
-	 */
-	public IResource getOwner();
-	
-	/**
-	 * Answers the configuration that the receiver is based on. 
-	 * 
-	 * @return
-	 */
-	public IConfiguration getParent();
-	
-	/**
-	 * Returns the tools that are used in this configuration.
-	 * 
-	 * @return
-	 */
-	public ITool[] getTools();
-
-	/**
-	 * Sets the value of a boolean option for this configuration.
-	 * 
-	 * @param option The option to change.
-	 * @param value The value to apply to the option.
-	 * @throws BuildException
-	 */
-	public void setOption(IOption option, boolean value) 
-		throws BuildException;	
-
-	/**
-	 * Sets the value of a string option for this configuration.
-	 * 
-	 * @param option The option that will be effected by change.
-	 * @param value The value to apply to the option.
-	 */
-	public void setOption(IOption option, String value)
-		throws BuildException;
-	
-	/**
-	 * Sets the value of a list option for this configuration.
-	 * 
-	 * @param option The option to change.
-	 * @param value The values to apply to the option.
-	 */
-	public void setOption(IOption option, String[] value)
-		throws BuildException;
-}
Index: build/org/eclipse/cdt/core/build/managed/IManagedBuildInfo.java
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/IManagedBuildInfo.java
diff -N build/org/eclipse/cdt/core/build/managed/IManagedBuildInfo.java
--- build/org/eclipse/cdt/core/build/managed/IManagedBuildInfo.java	11 Sep 2003 14:46:14 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,200 +0,0 @@
-package org.eclipse.cdt.core.build.managed;
-
-import java.util.List;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
-***********************************************************************/
-
-public interface IManagedBuildInfo {
-
-	/**
-	 * Add a new target to the build information for the receiver
-	 * 
-	 * @param target
-	 */
-	public void addTarget(ITarget target);
-		
-	/**
-	 * Answers <code>true</code> if the build system knows how to 
-	 * build a file with the extension passed in the argument.
-	 *  
-	 * @param srcExt
-	 * @return
-	 */
-	public boolean buildsFileType(String srcExt);
-
-	/**
-	 * Returns the name of the artifact to build for the receiver.
-	 * 
-	 * @return
-	 */
-	public String getBuildArtifactName();
-
-	/**
-	 * Answers the command needed to remove files on the build machine
-	 * 
-	 * @return
-	 */
-	public String getCleanCommand();
-
-	/**
-	 * Answers the name of the default configuration, for example <code>Debug</code>  
-	 * or <code>Release</code>.
-	 * 
-	 * @return
-	 */
-	public String getConfigurationName();
-	
-	/**
-	 * Answers a <code>String</code> array containing the names of all the configurations
-	 * defined for the project's current target.
-	 *  
-	 * @return
-	 */
-	public String[] getConfigurationNames();
-
-	/**
-	 * Get the default configuration associated with the receiver
-	 * 
-	 * @return
-	 */
-	public IConfiguration getDefaultConfiguration(ITarget target);
-	
-	
-	/**
-	 * Returns the default target in the receiver.
-	 * 
-	 * @return
-	 */
-	public ITarget getDefaultTarget();
-	
-	/**
-	 * Answers the extension that will be built by the current configuration
-	 * for the extension passed in the argument or <code>null</code>.
-	 * 
-	 * @param resourceName
-	 * @return
-	 */
-	public String getOutputExtension(String resourceExtension);
-	
-	/**
-	 * Answers the flag to be passed to the build tool to produce a specific output 
-	 * or an empty <code>String</code> if there is no special flag. For example, the
-	 * GCC tools use the '-o' flag to produce a named output, for example
-	 * 		gcc -c foo.c -o foo.o
-	 * 
-	 * @param outputExt
-	 * @return
-	 */
-	public String getOutputFlag(String outputExt);
-
-	/**
-	 * Get the target specified in the argument.
-	 * 
-	 * @param id
-	 * @return
-	 */
-	public ITarget getTarget(String id);
-	
-	/**
-	 * Answers the prefix that should be prepended to the name of the build 
-	 * artifact. For example, a library foo, should have the prefix 'lib' and 
-	 * the extension '.a', so the final goal would be 'libfoo.a' 
-	 * 
-	 * @param extension
-	 * @return
-	 */
-	public String getOutputPrefix(String outputExtension);
-
-	/**
-	 * Get all of the targets associated with the receiver.
-	 * 
-	 * @return
-	 */
-	public List getTargets();
-	
-	/**
-	 * Returns a <code>String</code> containing the flags, including 
-	 * those overridden by the user, for the tool that handles the 
-	 * type of source file defined by the argument.
-	 * 
-	 * @param extension
-	 * @return
-	 */
-	public String getFlagsForSource(String extension);
-
-	/**
-	 * Returns a <code>String</code> containing the flags, including 
-	 * those overridden by the user, for the tool that handles the 
-	 * type of target defined by the argument.
-	 * 
-	 * @param extension
-	 * @return
-	 */
-	public String getFlagsForTarget(String extension);
-
-	/**
-	 * Answers the libraries the project links in.
-	 * 
-	 * @param extension
-	 * @return
-	 */
-	public String[] getLibsForTarget(String extension);
-
-	/**
-	 * Answers a string array containing the arguments to be passed to
-	 * make. For example, if the user has selected a build that stops
-	 * at the first error, the array would contain {"k"}.
-	 * 
-	 * @return
-	 */
-	public String[] getMakeArguments();
-
-	/**
-	 * Answers a <code>String</code> containing the make command invocation 
-	 * for the default target/configuration.
-	 */
-	public String getMakeCommand();
-
-	/**
-	 * Returns a <code>String</code> containing the command-line invocation 
-	 * for the tool associated with the source extension.
-	 * 
-	 * @param extension
-	 * @return
-	 */
-	public String getToolForSource(String extension);
-
-	/**
-	 * Returns a <code>String</code> containing the command-line invocation 
-	 * for the tool associated with the target extension.
-	 * 
-	 * @param extension
-	 * @return
-	 */
-	public String getToolForTarget(String extension);
-	
-	/**
-	 * Set the primary configuration for the receiver.
-	 * 
-	 * @param configuration The <code>IConfiguration</code> that will be used as the default
-	 * for all building.
-	 */
-	public void setDefaultConfiguration(IConfiguration configuration);
-	
-	/**
-	 * Set the primary target for the receiver.
-	 * 
-	 * @param target
-	 */
-	public void setDefaultTarget(ITarget target);
-
-}
Index: build/org/eclipse/cdt/core/build/managed/IOption.java
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/IOption.java
diff -N build/org/eclipse/cdt/core/build/managed/IOption.java
--- build/org/eclipse/cdt/core/build/managed/IOption.java	20 Aug 2003 17:52:32 -0000	1.11
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,163 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.core.build.managed;
-
-/**
- * 
- */
-public interface IOption extends IBuildObject {
-	// Type for the value of the option
-	public static final int BOOLEAN = 0;
-	public static final int ENUMERATED = 1;
-	public static final int STRING = 2;
-	public static final int STRING_LIST = 3;
-	public static final int INCLUDE_PATH = 4;
-	public static final int PREPROCESSOR_SYMBOLS = 5;
-	public static final int LIBRARIES = 6;
-	
-	// Schema attribute names for option elements
-	public static final String CATEGORY = "category";
-	public static final String COMMAND = "command";
-	public static final String DEFAULT_VALUE = "defaultValue";
-	public static final String ENUM_VALUE = "enumeratedOptionValue";
-	public static final String IS_DEFAULT = "isDefault";
-	public static final String LIST_VALUE = "listOptionValue";
-	public static final String TYPE_BOOL = "boolean";
-	public static final String TYPE_ENUM = "enumerated";
-	public static final String TYPE_INC_PATH = "includePath";
-	public static final String TYPE_LIB = "libs";
-	public static final String TYPE_STRING = "string";
-	public static final String TYPE_STR_LIST = "stringList";
-	public static final String VALUE_TYPE = "valueType";
-
-	// Schema attribute names for listOptionValue elements
-	public static final String LIST_ITEM_VALUE = "value";
-	public static final String LIST_ITEM_BUILTIN = "builtIn";
-
-	
-	/**
-	 * If this option is defined as an enumeration, this function returns
-	 * the list of possible values for that enum.
-	 * 
-	 * If this option is not defined as an enumeration, it returns <code>null</code>.
-	 * @return
-	 */
-	public String [] getApplicableValues();
-
-	/**
-	 * Answers the value for a boolean option.
-	 * 
-	 * @return 
-	 * @throws BuildException
-	 */
-	public boolean getBooleanValue() throws BuildException;
-	
-	/**
-	 * Answers an array of strings containing the built-in values 
-	 * defined for a stringList, includePaths, definedSymbols, or libs
-	 * option. If none have been defined, the array will be empty but
-	 * never <code>null</code>.
-	 * 
-	 * @return
-	 */
-	public String[] getBuiltIns();
-		
-	/**
-	 * Returns the category for this option.
-	 * 
-	 * @return
-	 */
-	public IOptionCategory getCategory();
-	
-	/**
-	 * Answers a <code>String</code> containing the actual command line 
-	 * option associated with the option
-	 * 
-	 * @return  
-	 */
-	public String getCommand();
-	
-	/**
-	 * @return
-	 * @throws BuildException
-	 */
-	public String[] getDefinedSymbols() throws BuildException;
-
-	/**
-	 * Answers the command associated with the enumeration name. For
-	 * example, if the enumeration name was 'Default' for the debug 
-	 * level option of the Gnu compiler, and the plugin manifest defined
-	 * that as -g, then the return value would be a String containing "-g"  
-	 *  
-	 * @return 
-	 */
-	public String getEnumCommand (String name);
-
-	/**
-	 * Answers an array of <code>String</code> containing the includes paths
-	 * defined in the build model.
-	 * 
-	 * @return
-	 * @throws BuildException
-	 */
-	public String[] getIncludePaths() throws BuildException;
-		
-
-	/**
-	 * Answers an array or <code>String</code>s containing the libraries
-	 * that must be linked into the project.
-	 * @return
-	 */
-	public String[] getLibraries() throws BuildException ;
-
-	/**
-	 * Answers a <code>String</code> containing the selected enumeration in an
-	 * enumerated option. For an option that has not been changed by the user, 
-	 * the receiver will answer with the default defined in the plugin manifest.
-	 * If the user has modified the selection, the receiver will answer with the
-	 * overridden selection.
-	 * 
-	 * @return 
-	 * @throws BuildException
-	 */
-	public String getSelectedEnum () throws BuildException;	
-
-	/**
-	 * Returns the current value for this option if it is a List of Strings.
-	 * 
-	 * @return
-	 * @throws BuildException
-	 */
-	public String [] getStringListValue() throws BuildException;
-	
-	/**
-	 * Returns the current value for this option if it is a String
-	 * 
-	 * @return
-	 * @throws BuildException
-	 */
-	public String getStringValue() throws BuildException;
-	
-	/**
-	 * Returns the tool defining this option.
-	 * 
-	 * @return
-	 */
-	public ITool getTool();
-	
-	/**
-	 * Get the type for the value of the option.
-	 * 
-	 * @return
-	 */
-	public int getValueType();
-
-}
Index: build/org/eclipse/cdt/core/build/managed/IOptionCategory.java
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/IOptionCategory.java
diff -N build/org/eclipse/cdt/core/build/managed/IOptionCategory.java
--- build/org/eclipse/cdt/core/build/managed/IOptionCategory.java	31 Jul 2003 13:20:37 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,50 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.core.build.managed;
-
-/**
- * 
- */
-public interface IOptionCategory extends IBuildObject {
-
-	// Schema element names
-	public static final String PARENT = "parent";
-
-	/**
-	 * Returns the list of children of this node in the option category tree
-	 * 
-	 * @return
-	 */
-	public IOptionCategory[] getChildCategories();
-	
-	/**
-	 * Returns the options in this category for a given configuration.
-	 * 
-	 * @param tool
-	 * @return
-	 */
-	public IOption[] getOptions(IConfiguration configuration);
-
-	/**
-	 * Returns the category that owns this category, or null if this is the
-	 * top category for a tool.
-	 * 
-	 * @return
-	 */
-	public IOptionCategory getOwner();
-	
-	/**
-	 * Returns the tool that ultimately owns this category.
-	 * 
-	 * @return
-	 */
-	public ITool getTool();
-}
Index: build/org/eclipse/cdt/core/build/managed/ITarget.java
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/ITarget.java
diff -N build/org/eclipse/cdt/core/build/managed/ITarget.java
--- build/org/eclipse/cdt/core/build/managed/ITarget.java	11 Sep 2003 14:46:14 -0000	1.11
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,130 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.core.build.managed;
-
-import org.eclipse.core.resources.IResource;
-
-/**
- * This class represents targets for the managed build process.  A target
- * is some type of resource built using a given collection of tools.
- */
-public interface ITarget extends IBuildObject {
-	public static final String TARGET_ELEMENT_NAME = "target";	//$NON-NLS-1$
-
-	/**
-	 * Creates a configuration for the target populated with the tools and
-	 * options settings from the parent configuration.  As options and tools
-	 * change in the parent, unoverridden values are updated in the child
-	 * config as well.
-	 * 
-	 * @param parent
-	 * @param id
-	 * @return
-	 */
-	public IConfiguration createConfiguration(IConfiguration parent, String id);
-
-	/**
-	 * Creates a new configuration for the target.  It is populated with
-	 * the tools defined for that target and options set at their defaults.
-	 * 
-	 * @param id id for this configuration.
-	 * @return
-	 */
-	public IConfiguration createConfiguration(String id);
-	
-	/**
-	 * Get the name of the final build artifact.
-	 * 
-	 * @return 
-	 */
-	public String getArtifactName();
-	
-	/**
-	 * Answers the OS-specific command to remove files created by the build
-	 *  
-	 * @return
-	 */
-	public String getCleanCommand();
-
-	/**
-	 * Returns all of the configurations defined by this target.
-	 * @return
-	 */
-	public IConfiguration[] getConfigurations();
-
-	/**
-	 * Get the default extension that should be applied to build artifacts
-	 * created by this target.
-	 * 
-	 * @return
-	 */
-	public String getDefaultExtension();	
-
-	/**
-	 * Answers the name of the make utility for the target.
-	 *  
-	 * @return
-	 */
-	public String getMakeCommand();
-
-	/**
-	 * Returns the configuration with the given id, or null if not found.
-	 * 
-	 * @param id
-	 * @return
-	 */
-	public IConfiguration getConfiguration(String id);
-	
-	/**
-	 * Gets the resource that this target is applied to.
-	 * 
-	 * @return
-	 */
-	public IResource getOwner();
-
-	/**
-	 * @return the <code>ITarget</code> that is the parent of the receiver.
-	 */
-	public ITarget getParent();
-	
-	/**
-	 * Returns the list of platform specific tools associated with this
-	 * platform.
-	 * 
-	 * @return
-	 */
-	public ITool[] getTools();
-
-	/**
-	 * Returns whether this target is abstract.
-	 * @return 
-	 */
-	public boolean isAbstract();
-	
-	/**
-	 * Answers <code>true</code> if the receiver is a target that is defined 
-	 * for testing purposes only, else <code>false</code>. A test target will 
-	 * not be shown in the UI but can still be manipulated programmatically.
-	 * 
-	 * @return
-	 */
-	public boolean isTestTarget();
-
-	/**
-	 * Set the name of the artifact that will be produced when the receiver
-	 * is built.
-	 * 
-	 * @param name The name of the build artifact.
-	 */
-	public void setBuildArtifact(String name);
-
-	
-}
Index: build/org/eclipse/cdt/core/build/managed/ITool.java
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/ITool.java
diff -N build/org/eclipse/cdt/core/build/managed/ITool.java
--- build/org/eclipse/cdt/core/build/managed/ITool.java	11 Sep 2003 14:46:14 -0000	1.7
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,116 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.core.build.managed;
-
-/**
- * 
- */
-public interface ITool extends IBuildObject {
-	// Schema element names
-	public static final String TOOL_ELEMENT_NAME = "tool";	//$NON-NLS-1$
-	public static final String COMMAND = "command";	//$NON-NLS-1$
-	public static final String OPTION = "option";	//$NON-NLS-1$
-	public static final String OPTION_CAT = "optionCategory";	//$NON-NLS-1$
-	public static final String OPTION_REF = "optionReference";	//$NON-NLS-1$
-	public static final String OUTPUT_FLAG = "outputFlag";	//$NON-NLS-1$
-	public static final String OUTPUT_PREFIX = "outputPrefix";	//$NON-NLS-1$
-	public static final String OUTPUTS = "outputs";	//$NON-NLS-1$
-	public static final String SOURCES = "sources";	//$NON-NLS-1$
-	public static final String WHITE_SPACE = " ";	//$NON-NLS-1$
-
-	/**
-	 * Return <code>true</code> if the receiver builds files with the
-	 * specified extension, else <code>false</code>.
-	 * 
-	 * @param extension
-	 * @return
-	 */
-	public boolean buildsFileType(String extension);
-
-	/**
-	 * Get a particular option.
-	 * 
-	 * @param id
-	 * @return
-	 */
-	public IOption getOption(String id);
-	
-	/**
-	 * Returns the options that may be customized for this tool.
-	 */
-	public IOption[] getOptions();
-	
-	/**
-	 * Answer the output extension the receiver will create from the input, 
-	 * or <code>null</code> if the tool does not understand that extension.
-	 * 
-	 * @param inputExtension The extension of the source file. 
-	 * @return
-	 */
-	public String getOutputExtension(String inputExtension);
-	
-	/**
-	 * Answers the argument that must be passed to a specific tool in order to 
-	 * control the name of the output artifact. For example, the GCC compile and 
-	 * linker use '-o', while the archiver does not. 
-	 * 
-	 * @return
-	 */
-	public String getOutputFlag();
-
-	/**
-	 * Answers the prefix that the tool should prepend to the name of the build artifact.
-	 * For example, a librarian usually prepends 'lib' to the target.a
-	 * @return
-	 */
-	public String getOutputPrefix();
-
-	/**
-	 * Return the target that defines this tool, if applicable
-	 * @return
-	 */
-	public ITarget getTarget();
-	
-	/**
-	 * Answers the command-line invocation defined for the receiver.
-	 * 
-	 * @return
-	 */
-	public String getToolCommand();
-	
-	/**
-	 * Answers the additional command line arguments the user has specified for
-	 * the tool.
-	 * 
-	 * @return
-	 */
-	public String getToolFlags() throws BuildException ;
-	
-	/**
-	 * Options are organized into categories for UI purposes.
-	 * These categories are organized into a tree.  This is the root
-	 * of that tree.
-	 * 
-	 * @return
-	 */
-	public IOptionCategory getTopOptionCategory();
-	
-	/**
-	 * Answers <code>true</code> if the receiver builds a file with the extension specified
-	 * in the argument, else <code>false</code>.
-	 * 
-	 * @param outputExtension
-	 * @return
-	 */
-	public boolean producesFileType(String outputExtension);
-
-	
-}
Index: build/org/eclipse/cdt/core/build/managed/ManagedBuildManager.java
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/ManagedBuildManager.java
diff -N build/org/eclipse/cdt/core/build/managed/ManagedBuildManager.java
--- build/org/eclipse/cdt/core/build/managed/ManagedBuildManager.java	11 Sep 2003 14:46:14 -0000	1.14
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,566 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.core.build.managed;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.OutputStreamWriter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.apache.xerces.dom.DocumentImpl;
-import org.apache.xml.serialize.Method;
-import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.Serializer;
-import org.apache.xml.serialize.SerializerFactory;
-import org.eclipse.cdt.core.AbstractCExtension;
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.parser.*;
-import org.eclipse.cdt.internal.core.build.managed.Configuration;
-import org.eclipse.cdt.internal.core.build.managed.ManagedBuildInfo;
-import org.eclipse.cdt.internal.core.build.managed.Target;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.QualifiedName;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * This is the main entry point for getting at the build information
- * for the managed build system. 
- */
-public class ManagedBuildManager extends AbstractCExtension implements IScannerInfoProvider {
-
-	private static final QualifiedName buildInfoProperty = new QualifiedName(CCorePlugin.PLUGIN_ID, "managedBuildInfo");
-	private static final String ROOT_ELEM_NAME = "ManagedProjectBuildInfo";	//$NON-NLS-1$
-	private static final String FILE_NAME = ".cdtbuild";	//$NON-NLS-1$
-	private static final ITarget[] emptyTargets = new ITarget[0];
-	public static final String INTERFACE_IDENTITY = CCorePlugin.PLUGIN_ID + "." + "ManagedBuildManager";	//$NON-NLS-1$
-	public static final String EXTENSION_POINT_ID = "ManagedBuildInfo";		//$NON-NLS-1$
-	
-	// Targets defined by extensions (i.e., not associated with a resource)
-	private static boolean extensionTargetsLoaded = false;
-	private static List extensionTargets;
-	private static Map extensionTargetMap;
-
-	// Listeners interested in build model changes
-	private static Map buildModelListeners; 
-
-	/**
-	 * Returns the list of targets that are defined by this project,
-	 * projects referenced by this project, and by the extensions. 
-	 * 
-	 * @param project
-	 * @return
-	 */
-	public static ITarget[] getDefinedTargets(IProject project) {
-		// Make sure the extensions are loaded
-		loadExtensions();
-
-		// Get the targets for this project and all referenced projects
-		List definedTargets = null;
-		// To Do
-
-		// Create the array and copy the elements over
-		int size = extensionTargets.size()
-			+ (definedTargets != null ? definedTargets.size() : 0);
-
-		ITarget[] targets = new ITarget[size];
-		
-		int n = 0;
-		for (int i = 0; i < extensionTargets.size(); ++i)
-			targets[n++] = (ITarget)extensionTargets.get(i);
-		
-		if (definedTargets != null)
-			for (int i = 0; i < definedTargets.size(); ++i)
-				targets[n++] = (ITarget)definedTargets.get(i);
-				
-		return targets;
-	}
-
-	/**
-	 * @return
-	 */
-	public static Map getExtensionTargetMap() {
-		if (extensionTargetMap == null) {
-			extensionTargetMap = new HashMap();
-		}
-		return extensionTargetMap;
-	}
-
-	/**
-	 * Returns the targets owned by this project.  If none are owned,
-	 * an empty array is returned.
-	 * 
-	 * @param project
-	 * @return
-	 */
-	public static ITarget[] getTargets(IResource resource) {
-		IManagedBuildInfo buildInfo = getBuildInfo(resource);
-		
-		if (buildInfo != null) {
-			List targets = buildInfo.getTargets();
-			return (ITarget[])targets.toArray(new ITarget[targets.size()]);
-		} else {
-			return emptyTargets;
-		}
-	}
-
-	
-	/**
-	 * Answers the result of a best-effort search to find a target with the 
-	 * specified ID, or <code>null</code> if one is not found.
-	 * 
-	 * @param resource
-	 * @param id
-	 * @return
-	 */
-	public static ITarget getTarget(IResource resource, String id) {
-		ITarget target = null;
-		// Check if the target is spec'd in the build info for the resource
-		if (resource != null) {
-			IManagedBuildInfo buildInfo = getBuildInfo(resource);
-			if (buildInfo != null)
-				target = buildInfo.getTarget(id);
-		}
-		// OK, check the extension map
-		if (target == null) {
-			target = (ITarget)getExtensionTargetMap().get(id);
-		}
-		return target;
-	}
-
-	/**
-	 * Creates a new target for the resource based on the parentTarget.
-	 * 
-	 * @param resource
-	 * @param parentTarget
-	 * @return new <code>ITarget</code> with settings based on the parent passed in the arguments
-	 * @throws BuildException
-	 */
-	public static ITarget createTarget(IResource resource, ITarget parentTarget)
-		throws BuildException
-	{
-		IResource owner = parentTarget.getOwner();
-		
-		if (owner != null && owner.equals(resource))
-			// Already added
-			return parentTarget; 
-			
-		if (resource instanceof IProject) {
-			// Must be an extension target (why?)
-			if (owner != null)
-				throw new BuildException("addTarget: owner not null");
-		} else {
-			// Owner must be owned by the project containing this resource
-			if (owner == null)
-				throw new BuildException("addTarget: null owner");
-			if (!owner.equals(resource.getProject()))
-				throw new BuildException("addTarget: owner not project");
-		}
-		
-		// Passed validation
-		return new Target(resource, parentTarget);
-	}
-	
-	/**
-	 * Sets the default configuration for the project. Note that this will also
-	 * update the default target if needed.
-	 *  
-	 * @param project
-	 * @param newDefault
-	 */
-	public static void setDefaultConfiguration(IProject project, IConfiguration newDefault) {
-		if (project == null || newDefault == null) {
-			return;
-		}
-		// Set the default in build information for the project 
-		IManagedBuildInfo info = getBuildInfo(project);
-		if (info != null) {
-			info.setDefaultConfiguration(newDefault);
-		}
-	}
-	
-	/**
-	 * @param config
-	 * @param option
-	 */
-	private static void setDirty(IConfiguration config, IOption option) {
-		// Don't bother unless this is something that effect the 
-		if (!(option.getValueType() == IOption.INCLUDE_PATH 
-			|| option.getValueType() == IOption.PREPROCESSOR_SYMBOLS)) {
-			return;
-		}
-		// Figure out if there is a listener for this change
-		IResource resource = config.getOwner();
-		List listeners = (List) getBuildModelListeners().get(resource);
-		if (listeners == null) {
-			return;
-		}
-		ListIterator iter = listeners.listIterator();
-		while (iter.hasNext()) {
-			((IScannerInfoChangeListener)iter.next()).changeNotification(resource, getScannerInfo(resource));
-		}
-	}
-
-	/**
-	 * Set the string value for an option for a given config.
-	 * 
-	 * @param config The configuration the option belongs to.
-	 * @param option The option to set the value for.
-	 * @param value The boolean that the option should contain after the change.
-	 */
-	public static void setOption(IConfiguration config, IOption option, boolean value) {
-		try {
-			config.setOption(option, value);
-			setDirty(config, option);
-		} catch (BuildException e) {
-			return;
-		}
-	}
-
-	/**
-	 * Set the string value for an option for a given config.
-	 * 
-	 * @param config The configuration the option belongs to.
-	 * @param option The option to set the value for.
-	 * @param value The value that the option should contain after the change.
-	 */
-	public static void setOption(IConfiguration config, IOption option, String value) {
-		try {
-			config.setOption(option, value);
-			setDirty(config, option);
-		} catch (BuildException e) {
-			return;
-		}
-	}
-	
-	/**
-	 * Set the string array value for an option for a given config.
-	 * 
-	 * @param config The configuration the option belongs to.
-	 * @param option The option to set the value for.
-	 * @param value The values the option should contain after the change.
-	 */
-	public static void setOption(IConfiguration config, IOption option, String[] value) {
-		try {
-			config.setOption(option, value);
-			setDirty(config, option);
-		} catch (BuildException e) {
-			return;
-		}
-	}
-
-	/**
-	 * Saves the build information associated with a project and all resources
-	 * in the project to the build info file.
-	 * 
-	 * @param project
-	 */
-	public static void saveBuildInfo(IProject project) {
-		// Create document
-		Document doc = new DocumentImpl();
-		Element rootElement = doc.createElement(ROOT_ELEM_NAME);
-		doc.appendChild(rootElement);
-
-		// Save the build info
-		ManagedBuildInfo buildInfo = (ManagedBuildInfo) getBuildInfo(project);
-		if (buildInfo != null)
-			buildInfo.serialize(doc, rootElement);
-		
-		// Save the document
-		ByteArrayOutputStream s = new ByteArrayOutputStream();
-		OutputFormat format = new OutputFormat();
-		format.setIndenting(true);
-		format.setLineSeparator(System.getProperty("line.separator")); //$NON-NLS-1$
-		String xml = null;
-		try {
-			Serializer serializer
-				= SerializerFactory.getSerializerFactory(Method.XML).makeSerializer(new OutputStreamWriter(s, "UTF8"), format);
-			serializer.asDOMSerializer().serialize(doc);
-			xml = s.toString("UTF8"); //$NON-NLS-1$		
-			IFile rscFile = project.getFile(FILE_NAME);
-			InputStream inputStream = new ByteArrayInputStream(xml.getBytes());
-			// update the resource content
-			if (rscFile.exists()) {
-				rscFile.setContents(inputStream, IResource.FORCE, null);
-			} else {
-				rscFile.create(inputStream, IResource.FORCE, null);
-			}
-		} catch (Exception e) {
-			return;
-		}
-	}
-
-	/**
-	 * @param resource
-	 */
-	public static void removeBuildInfo(IResource resource) {
-		try {
-			resource.setSessionProperty(buildInfoProperty, null);
-		} catch (CoreException e) {
-		}
-	}
-
-	/**
-	 * Resets the build information for the project and configuration specified in the arguments. 
-	 * The build information will contain the settings defined in the plugin manifest. 
-	 * 
-	 * @param project
-	 * @param configuration
-	 */
-	public static void resetConfiguration(IProject project, IConfiguration configuration) {
-		// Make sure the extensions are loaded
-		loadExtensions();
-
-		// Find out the parent of the configuration
-		IConfiguration parentConfig = configuration.getParent();
-		// Find the parent target the configuration 
-		ITarget parentTarget = parentConfig.getTarget();
-
-		// Get the extension point information		
-		IExtensionPoint extensionPoint = CCorePlugin.getDefault().getDescriptor().getExtensionPoint(EXTENSION_POINT_ID);
-		IExtension[] extensions = extensionPoint.getExtensions();
-		for (int i = 0; i < extensions.length; ++i) {
-			IExtension extension = extensions[i];
-			IConfigurationElement[] elements = extension.getConfigurationElements();
-			for (int j = 0; j < elements.length; ++j) {
-				IConfigurationElement element = elements[j];
-				if (element.getName().equals(ITarget.TARGET_ELEMENT_NAME) && 
-					element.getAttribute(ITarget.ID).equals(parentTarget.getId())) {
-					// We have the parent target so get the definition for the parent config
-					IConfigurationElement[] targetElements = element.getChildren();
-					for (int k = 0; k < targetElements.length; ++k) {
-						IConfigurationElement targetElement = targetElements[k];
-						if (targetElement.getName().equals(IConfiguration.CONFIGURATION_ELEMENT_NAME) && 
-							targetElement.getAttribute(IConfiguration.ID).equals(parentConfig.getId())) {
-							// We now have the plugin element the target was originally based on
-							((Configuration)configuration).reset(targetElement);							 
-						}
-					}
-				}
-			}
-		}
-	}
-	
-	// Private stuff
-
-	public static void addExtensionTarget(Target target) {
-		if (extensionTargets == null) {
-			extensionTargets = new ArrayList();
-		}
-		
-		extensionTargets.add(target);
-		getExtensionTargetMap().put(target.getId(), target);
-	}
-		
-	private static ManagedBuildInfo loadBuildInfo(IProject project) {
-		ManagedBuildInfo buildInfo = null;
-		IFile file = project.getFile(FILE_NAME);
-		if (!file.exists())
-			return null;
-	
-		try {
-			InputStream stream = file.getContents();
-			DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-			Document document = parser.parse(stream);
-			Node rootElement = document.getFirstChild();
-			if (rootElement.getNodeName().equals(ROOT_ELEM_NAME)) {
-				buildInfo = new ManagedBuildInfo(project, (Element)rootElement);
-				project.setSessionProperty(buildInfoProperty, buildInfo);
-			}
-		} catch (Exception e) {
-			buildInfo = null;
-		}
-
-		return buildInfo;
-	}
-
-	private static void loadExtensions() {
-		if (extensionTargetsLoaded)
-			return;
-		extensionTargetsLoaded = true;
-
-		IExtensionPoint extensionPoint = CCorePlugin.getDefault().getDescriptor().getExtensionPoint(EXTENSION_POINT_ID);
-		IExtension[] extensions = extensionPoint.getExtensions();
-		for (int i = 0; i < extensions.length; ++i) {
-			IExtension extension = extensions[i];
-			IConfigurationElement[] elements = extension.getConfigurationElements();
-			for (int j = 0; j < elements.length; ++j) {
-				IConfigurationElement element = elements[j];
-				if (element.getName().equals(ITarget.TARGET_ELEMENT_NAME)) {
-					new Target(element);
-				}
-			}
-		}
-	}
-
-	/**
-	 * @param project
-	 * @return
-	 */
-	public static boolean manages(IResource resource) {
-		// The managed build manager manages build information for the 
-		// resource IFF it it is a project and has a build file with the proper
-		// root element
-		IProject project = null;
-		if (resource instanceof IProject){
-			project = (IProject)resource;
-		} else if (resource instanceof IFile) {
-			project = ((IFile)resource).getProject();
-		} else {
-			return false;
-		}
-		IFile file = project.getFile(FILE_NAME);
-		if (file.exists()) {
-			try {
-				InputStream stream = file.getContents();
-				DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-				Document document = parser.parse(stream);
-				Node rootElement = document.getFirstChild();
-				if (rootElement.getNodeName().equals(ROOT_ELEM_NAME)) {
-					return true;
-				} 
-			} catch (Exception e) {
-				return false;
-			}
-		}
-		return false;
-	}
-
-	private static ManagedBuildInfo findBuildInfo(IResource resource, boolean create) {
-		// Make sure the extension information is loaded first
-		loadExtensions();
-		ManagedBuildInfo buildInfo = null;
-		try {
-			buildInfo = (ManagedBuildInfo)resource.getSessionProperty(buildInfoProperty);
-		} catch (CoreException e) {
-			return buildInfo;
-		}
-		
-		if (buildInfo == null && resource instanceof IProject) {
-			buildInfo = loadBuildInfo((IProject)resource);
-		}
-		
-		if (buildInfo == null && create) {
-			try {
-				buildInfo = new ManagedBuildInfo();
-				resource.setSessionProperty(buildInfoProperty, buildInfo);
-			} catch (CoreException e) {
-				buildInfo = null;
-			}
-		}
-		
-		return buildInfo;
-	}
-	
-	public static IManagedBuildInfo getBuildInfo(IResource resource, boolean create) {
-		return (IManagedBuildInfo) findBuildInfo(resource, create);
-	}
-
-	public static IManagedBuildInfo getBuildInfo(IResource resource) {
-		return (IManagedBuildInfo) findBuildInfo(resource, false);
-	}
-
-	/*
-	 * @return
-	 */
-	private static Map getBuildModelListeners() {
-		if (buildModelListeners == null) {
-			buildModelListeners = new HashMap();
-		}
-		return buildModelListeners;
-	}
-
-	/**
-	 * Answers with an interface to the parse information that has been 
-	 * associated with the resource specified in the argument. 
-	 * 
-	 * @deprecated This method is not part of the registration interface. 
-	 * Clients of build information should now use getScannerInformation(IResource) 
-	 * for one-time information requests.
-	 * 
-	 * @param resource
-	 * @return
-	 */
-	public static IScannerInfo getScannerInfo(IResource resource) {
-		return (IScannerInfo) getBuildInfo(resource, false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.parser.IScannerInfoProvider#getScannerInformation(org.eclipse.core.resources.IResource)
-	 */
-	public IScannerInfo getScannerInformation(IResource resource) {
-		return (IScannerInfo) getBuildInfo(resource, false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.parser.IScannerInfoProvider#subscribe(org.eclipse.cdt.core.parser.IScannerInfoChangeListener)
-	 */
-	public synchronized void subscribe(IResource resource, IScannerInfoChangeListener listener) {
-		IResource project = null;
-		if (resource instanceof IProject) {
-			project = resource;
-		} else if (resource instanceof IFile) {
-			project = ((IFile)resource).getProject();
-		} else {
-			return;
-		}
-		// Get listeners for this resource
-		Map map = getBuildModelListeners();
-		List list = (List) map.get(project);
-		if (list == null) {
-			// Create a new list
-			list = new ArrayList();
-		}
-		if (!list.contains(listener)) {
-			// Add the new listener for the resource
-			list.add(listener);
-			map.put(project, list);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.parser.IScannerInfoProvider#unsubscribe(org.eclipse.cdt.core.parser.IScannerInfoChangeListener)
-	 */
-	public synchronized void unsubscribe(IResource resource, IScannerInfoChangeListener listener) {
-		IResource project = null;
-		if (resource instanceof IProject) {
-			project = resource;
-		} else if (resource instanceof IFile) {
-			project = ((IFile)resource).getProject();
-		} else {
-			return;
-		}
-		// Remove the listener
-		Map map = getBuildModelListeners();
-		List list = (List) map.get(project);
-		if (list != null && !list.isEmpty()) {
-			// The list is not empty so try to remove listener
-			list.remove(listener);
-			map.put(project, list);
-		}
-	}
-
-}
Index: build/org/eclipse/cdt/internal/core/build/managed/BuildObject.java
===================================================================
RCS file: build/org/eclipse/cdt/internal/core/build/managed/BuildObject.java
diff -N build/org/eclipse/cdt/internal/core/build/managed/BuildObject.java
--- build/org/eclipse/cdt/internal/core/build/managed/BuildObject.java	9 Apr 2003 20:56:20 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,50 +0,0 @@
-/*
- * Created on Apr 9, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.cdt.internal.core.build.managed;
-
-import org.eclipse.cdt.core.build.managed.IBuildObject;
-
-/**
- * @author dschaefe
- *
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class BuildObject implements IBuildObject {
-
-	protected String id;
-	protected String name;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IBuildObject#getId()
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IBuildObject#setId(java.lang.String)
-	 */
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IBuildObject#getName()
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IBuildObject#setName(java.lang.String)
-	 */
-	public void setName(String name) {
-		this.name = name;
-	}
-
-}
Index: build/org/eclipse/cdt/internal/core/build/managed/Configuration.java
===================================================================
RCS file: build/org/eclipse/cdt/internal/core/build/managed/Configuration.java
diff -N build/org/eclipse/cdt/internal/core/build/managed/Configuration.java
--- build/org/eclipse/cdt/internal/core/build/managed/Configuration.java	11 Sep 2003 14:46:14 -0000	1.14
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,319 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.internal.core.build.managed;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.cdt.core.build.managed.BuildException;
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.IOption;
-import org.eclipse.cdt.core.build.managed.ITarget;
-import org.eclipse.cdt.core.build.managed.ITool;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * 
- */
-public class Configuration extends BuildObject implements IConfiguration {
-
-	private ITarget target;
-	private IConfiguration parent;
-	private List toolReferences;
-
-	/**
-	 * A fresh new configuration for a target.
-	 * 
-	 * @param target
-	 * @param id
-	 */	
-	public Configuration(Target target, String id) {
-		this.id = id;
-		this.target = target;
-		
-		target.addConfiguration(this);
-	}
-
-	/**
-	 * Create a new configuration based on one already defined.
-	 * 
-	 * @param target The <code>Target</code> the receiver will be added to.
-	 * @param parent The <code>IConfiguration</code> to copy the settings from.
-	 * @param id A unique ID for the configuration.
-	 */
-	public Configuration(Target target, IConfiguration parent, String id) {
-		this.id = id;
-		this.name = parent.getName();
-		this.target = target;
-		this.parent = parent;
-		
-		target.addConfiguration(this);
-	}
-
-	/**
-	 * Create a new <code>Configuration</code> based on the specification in the plugin manifest.
-	 * 
-	 * @param target The <code>Target</code> the receiver will be added to.
-	 * @param element The element from the manifest that contains the default configuration settings.
-	 */
-	public Configuration(Target target, IConfigurationElement element) {
-		this.target = target;
-		
-		// id
-		setId(element.getAttribute(IConfiguration.ID));
-		
-		// hook me up
-		target.addConfiguration(this);
-		
-		// name
-		setName(element.getAttribute(IConfiguration.NAME));
-
-		IConfigurationElement[] configElements = element.getChildren();
-		for (int l = 0; l < configElements.length; ++l) {
-			IConfigurationElement configElement = configElements[l];
-			if (configElement.getName().equals(IConfiguration.TOOL_REF)) {
-				new ToolReference(this, configElement);
-			}
-		}
-	}
-	
-	/**
-	 * Build a configuration from the project manifest file.
-	 * 
-	 * @param target The <code>Target</code> the configuration belongs to. 
-	 * @param element The element from the manifest that contains the overridden configuration information.
-	 */
-	public Configuration(Target target, Element element) {
-		this.target = target;
-		
-		// id
-		setId(element.getAttribute(IConfiguration.ID));
-		
-		// hook me up
-		target.addConfiguration(this);
-		
-		// name
-		if (element.hasAttribute(IConfiguration.NAME))
-			setName(element.getAttribute(IConfiguration.NAME));
-		
-		if (element.hasAttribute(IConfiguration.PARENT)) {
-			// See if the target has a parent
-			ITarget targetParent = target.getParent();
-			// If so, then get my parent from it
-			if (targetParent != null) {
-				parent = targetParent.getConfiguration(element.getAttribute(IConfiguration.PARENT));
-			}
-			else {
-				parent = null;
-			}
-		}
-		
-		NodeList configElements = element.getChildNodes();
-		for (int i = 0; i < configElements.getLength(); ++i) {
-			Node configElement = configElements.item(i);
-			if (configElement.getNodeName().equals(IConfiguration.TOOL_REF)) {
-				new ToolReference(this, (Element)configElement);
-			}
-		}
-	
-	}
-	
-	/**
-	 * Persist receiver to project file.
-	 * 
-	 * @param doc
-	 * @param element
-	 */
-	public void serialize(Document doc, Element element) {
-		element.setAttribute(IConfiguration.ID, id);
-		
-		if (name != null)
-			element.setAttribute(IConfiguration.NAME, name);
-			
-		if (parent != null)
-			element.setAttribute(IConfiguration.PARENT, parent.getId());
-		
-		for (int i = 0; i < getToolReferences().size(); ++i) {
-			ToolReference toolRef = (ToolReference)getToolReferences().get(i);
-			Element toolRefElement = doc.createElement(IConfiguration.TOOL_REF);
-			element.appendChild(toolRefElement);
-			toolRef.serialize(doc, toolRefElement);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IConfiguration#getName()
-	 */
-	public String getName() {
-		return (name == null && parent != null) ? parent.getName() : name;
-	}
-
-	/*
-	 * @return
-	 */
-	private List getToolReferences() {
-		if (toolReferences == null) {
-			toolReferences = new ArrayList();
-		}
-		return toolReferences;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IConfiguration#getTools()
-	 */
-	public ITool[] getTools() {
-		ITool[] tools = parent != null
-			? parent.getTools()
-			: target.getTools();
-		
-		// Replace tools with overrides
-		for (int i = 0; i < tools.length; ++i) {
-			ToolReference ref = getToolReference(tools[i]);
-			if (ref != null)
-				tools[i] = ref;
-		}
-		
-		return tools;
-	}
-
-	/**
-	 * @param targetElement
-	 */
-	public void reset(IConfigurationElement element) {
-		// I just need to reset the tool references
-		getToolReferences().clear();
-		IConfigurationElement[] configElements = element.getChildren();
-		for (int l = 0; l < configElements.length; ++l) {
-			IConfigurationElement configElement = configElements[l];
-			if (configElement.getName().equals(IConfiguration.TOOL_REF)) {
-				new ToolReference(this, configElement);
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IConfiguration#getParent()
-	 */
-	public IConfiguration getParent() {
-		return parent;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IConfiguration#getTarget()
-	 */
-	public ITarget getTarget() {
-		return (target == null && parent != null) ? parent.getTarget() : target;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IConfiguration#getOwner()
-	 */
-	public IResource getOwner() {
-		return getTarget().getOwner();
-	}
-
-	/**
-	 * Returns the reference for a given tool.
-	 * 
-	 * @param tool
-	 * @return
-	 */
-	private ToolReference getToolReference(ITool tool) {
-		for (int i = 0; i < getToolReferences().size(); ++i) {
-			ToolReference toolRef = (ToolReference)getToolReferences().get(i);
-			if (toolRef.references(tool))
-				return toolRef;
-		}
-		return null;
-	}
-	
-	public void addToolReference(ToolReference toolRef) {
-		getToolReferences().add(toolRef);
-	}
-	
-	public OptionReference createOptionReference(IOption option) {
-		if (option instanceof OptionReference) {
-			OptionReference optionRef = (OptionReference)option;
-			ToolReference toolRef = optionRef.getToolReference();
-			if (toolRef.getConfiguration().equals(this))
-				return optionRef;
-			else {
-				toolRef = new ToolReference(this, toolRef);
-				return toolRef.createOptionReference(option);
-			}
-		} else {
-			ToolReference toolRef = getToolReference(option.getTool());
-			if (toolRef == null)
-				toolRef = new ToolReference(this, option.getTool());
-			return toolRef.createOptionReference(option);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IConfiguration#setOption(org.eclipse.cdt.core.build.managed.IOption, boolean)
-	 */
-	public void setOption(IOption option, boolean value) throws BuildException {
-		// Is there a delta
-		if (option.getBooleanValue() != value)
-			createOptionReference(option).setValue(value);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IConfiguration#setOption(org.eclipse.cdt.core.build.managed.IOption, java.lang.String)
-	 */
-	public void setOption(IOption option, String value) throws BuildException {
-		String oldValue;
-		// Check whether this is an enumerated option
-		if (option.getValueType() == IOption.ENUMERATED) {
-			oldValue = option.getSelectedEnum();
-		}
-		else {
-			oldValue = option.getStringValue(); 
-		}
-		if (!oldValue.equals(value))
-			createOptionReference(option).setValue(value);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IConfiguration#setOption(org.eclipse.cdt.core.build.managed.IOption, java.lang.String[])
-	 */
-	public void setOption(IOption option, String[] value) throws BuildException {
-		// Is there a delta
-		String[] oldValue;
-		switch (option.getValueType()) {
-			case IOption.STRING_LIST :
-				oldValue = option.getStringListValue();
-				break;
-			case IOption.INCLUDE_PATH :
-				oldValue = option.getIncludePaths();
-				break;
-			case IOption.PREPROCESSOR_SYMBOLS :
-				oldValue = option.getDefinedSymbols();
-				break;
-			case IOption.LIBRARIES :
-				oldValue = option.getLibraries();
-				break;
-			default :
-				oldValue = new String[0];
-				break;
-		}
-		if(!Arrays.equals(value, oldValue))
-			createOptionReference(option).setValue(value);
-	}
-
-
-}
Index: build/org/eclipse/cdt/internal/core/build/managed/ManagedBuildInfo.java
===================================================================
RCS file: build/org/eclipse/cdt/internal/core/build/managed/ManagedBuildInfo.java
diff -N build/org/eclipse/cdt/internal/core/build/managed/ManagedBuildInfo.java
--- build/org/eclipse/cdt/internal/core/build/managed/ManagedBuildInfo.java	11 Sep 2003 14:46:14 -0000	1.7
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,505 +0,0 @@
-package org.eclipse.cdt.internal.core.build.managed;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
- * **********************************************************************/
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-
-import org.eclipse.cdt.core.build.managed.BuildException;
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.IManagedBuildInfo;
-import org.eclipse.cdt.core.build.managed.IOption;
-import org.eclipse.cdt.core.build.managed.ITarget;
-import org.eclipse.cdt.core.build.managed.ITool;
-import org.eclipse.cdt.core.parser.IScannerInfo;
-import org.eclipse.core.resources.IResource;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class ManagedBuildInfo implements IManagedBuildInfo, IScannerInfo {
-
-	private IResource owner;
-	private Map targetMap;
-	private List targets;
-	private Map defaultConfigurations;
-	private ITarget defaultTarget;
-	
-	public ManagedBuildInfo() {
-		targetMap = new HashMap();
-		targets = new ArrayList();
-		defaultConfigurations = new HashMap();
-	}
-	
-	public ManagedBuildInfo(IResource owner, Element element) {
-		this();
-		// The id of the default configuration
-		String defaultTargetId = null;
-		List configIds = new ArrayList();
-		Node child = element.getFirstChild();
-		while (child != null) {
-			if (child.getNodeName().equals("target")) {
-				new Target(this, (Element)child);
-			} else if (child.getNodeName().equals("defaultConfig")) {
-				// We may not have read the config in yet, so just cache it
-				configIds.add(((Element)child).getAttribute("id"));
-			} else if (child.getNodeName().equals("defaultTarget")) {
-				defaultTargetId = ((Element)child).getAttribute("id");
-			}
-			child = child.getNextSibling();
-		}
-		// All the available targets have been read in
-		defaultTarget = (ITarget) targetMap.get(defaultTargetId);
-		// Now we have a misserable O(N^2) operation (oh well, the data sets are small)
-		ListIterator stringIter = configIds.listIterator();
-		while (stringIter.hasNext()){
-			String confId = (String) stringIter.next();
-			ListIterator targIter = targets.listIterator();
-			while (targIter.hasNext()) {
-				Target targ = (Target) targIter.next();
-				IConfiguration conf = targ.getConfiguration(confId);
-				if (conf != null) {
-					defaultConfigurations.put(targ.getId(), conf);
-					break;
-				}				
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#addTarget(org.eclipse.cdt.core.build.managed.ITarget)
-	 */
-	public void addTarget(ITarget target) {
-		targetMap.put(target.getId(), target);
-		targets.add(target);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#buildsFileType(java.lang.String)
-	 */
-	public boolean buildsFileType(String srcExt) {
-		// Check to see if there is a rule to build a file with this extension
-		IConfiguration config = getDefaultConfiguration(getDefaultTarget());
-		ITool[] tools = config.getTools();
-		for (int index = 0; index < tools.length; index++) {
-			ITool tool = tools[index];
-			if (tool.buildsFileType(srcExt)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getBuildArtifactName()
-	 */
-	public String getBuildArtifactName() {
-		// Get the default target and use its value
-		String name = getDefaultTarget().getArtifactName();
-		return name == null ? new String() : name;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getCleanCommand()
-	 */
-	public String getCleanCommand() {
-		// Get from the model
-		String command = new String();
-		ITarget target = getDefaultTarget();
-		command = target.getCleanCommand();
-		return command;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getConfigurationName()
-	 */
-	public String getConfigurationName() {
-		// Return the human-readable name of the default configuration
-		IConfiguration config = getDefaultConfiguration(getDefaultTarget());
-		return config == null ? new String() : config.getName();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getConfigurationNames()
-	 */
-	public String[] getConfigurationNames() {
-		ArrayList configNames = new ArrayList();
-		IConfiguration[] configs = getDefaultTarget().getConfigurations();
-		for (int i = 0; i < configs.length; i++) {
-			IConfiguration configuration = configs[i];
-			configNames.add(configuration.getName());
-		}
-		return (String[])configNames.toArray(new String[configNames.size()]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getDefaultConfiguration()
-	 */
-	public IConfiguration getDefaultConfiguration(ITarget target) {
-		// Get the default config associated with the defalt target
-		IConfiguration config = (IConfiguration) defaultConfigurations.get(target.getId());
-
-		// If null, look up the first configuration associated with the target
-		if (config == null) {
-			IConfiguration[] configs = getDefaultTarget().getConfigurations();
-			if (configs.length > 0) {
-				config = configs[0];
-			}
-		}
-		return config;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getDefaultTarget()
-	 */
-	public ITarget getDefaultTarget() {
-		if (defaultTarget == null) {
-			defaultTarget = (ITarget) targets.get(0);
-		}
-		return defaultTarget;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IScannerInfo#getDefinedSymbols()
-	 */
-	public Map getDefinedSymbols() {
-		// Return the defined symbols for the default configuration
-		HashMap symbols = new HashMap();
-		IConfiguration config = getDefaultConfiguration(getDefaultTarget());
-		ITool[] tools = config.getTools();
-		for (int i = 0; i < tools.length; i++) {
-			ITool tool = tools[i];
-			IOption[] opts = tool.getOptions();
-			for (int j = 0; j < opts.length; j++) {
-				IOption option = opts[j];
-				if (option.getValueType() == IOption.PREPROCESSOR_SYMBOLS) {
-					try {
-						ArrayList symbolList = new ArrayList();
-						symbolList.addAll(Arrays.asList(option.getBuiltIns()));
-						symbolList.addAll(Arrays.asList(option.getDefinedSymbols()));
-						Iterator iter = symbolList.listIterator();
-						while (iter.hasNext()) {
-							String symbol = (String) iter.next();
-							if (symbol.length() == 0){
-								continue;
-							}
-							String key = new String();
-							String value = new String();
-							int index = symbol.indexOf("=");
-							if (index != -1) {
-								key = symbol.substring(0, index).trim();
-								value = symbol.substring(index + 1).trim();
-							} else {
-								key = symbol.trim();
-							}
-							symbols.put(key, value);
-						}
-
-					} catch (BuildException e) {
-						// we should never get here
-						continue;
-					}
-				}
-			}
-		}
-		return symbols; 
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getFlagsForSource(java.lang.String)
-	 */
-	public String getFlagsForSource(String extension) {
-		// Get all the tools for the current config
-		IConfiguration config = getDefaultConfiguration(getDefaultTarget());
-		ITool[] tools = config.getTools();
-		for (int index = 0; index < tools.length; index++) {
-			ITool tool = tools[index];
-			if (tool.buildsFileType(extension)) {
-				String flags = new String();
-				try {
-					flags = tool.getToolFlags();
-				} catch (BuildException e) {
-					// Give it your best shot with the next tool
-					continue;
-				}
-				return flags;
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getToolFlags(java.lang.String)
-	 */
-	public String getFlagsForTarget(String extension) {
-		// Treat null extensions as an empty string
-		String ext = extension == null ? new String()  :  extension;
-		
-		// Get all the tools for the current config
-		IConfiguration config = getDefaultConfiguration(getDefaultTarget());
-		ITool[] tools = config.getTools();
-		for (int index = 0; index < tools.length; index++) {
-			ITool tool = tools[index];
-			if (tool.producesFileType(ext)) {
-				String flags = new String();
-				try {
-					flags = tool.getToolFlags();
-				} catch (BuildException e) {
-					// Somehow the model is out of sync for this item. Keep iterating
-					continue;
-				}
-				return flags;
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IScannerInfo#getIncludePaths()
-	 */
-	public String[] getIncludePaths() {
-		// Return the include paths for the default configuration
-		ArrayList paths = new ArrayList();
-		IConfiguration config = getDefaultConfiguration(getDefaultTarget());
-		ITool[] tools = config.getTools();
-		for (int i = 0; i < tools.length; i++) {
-			ITool tool = tools[i];
-			IOption[] opts = tool.getOptions();
-			for (int j = 0; j < opts.length; j++) {
-				IOption option = opts[j];
-				if (option.getValueType() == IOption.INCLUDE_PATH) {
-					try {
-						// Get all the built-in paths from the option
-						paths.addAll(Arrays.asList(option.getBuiltIns()));
-						// Get all the user-defined paths from the option
-						paths.addAll(Arrays.asList(option.getIncludePaths()));
-					} catch (BuildException e) {
-						// we should never get here, but continue anyway
-						continue;
-					}
-				}
-			}
-		}
-		paths.trimToSize();
-		return (String[])paths.toArray(new String[paths.size()]); 
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getLibsForTarget(java.lang.String)
-	 */
-	public String[] getLibsForTarget(String extension) {
-		ArrayList libs = new ArrayList();
-		// Get all the tools for the current config
-		IConfiguration config = getDefaultConfiguration(getDefaultTarget());
-		ITool[] tools = config.getTools();
-		for (int index = 0; index < tools.length; index++) {
-			ITool tool = tools[index];
-			if (tool.producesFileType(extension)) {
-				IOption[] opts = tool.getOptions();
-				// Look for the lib option type
-				for (int i = 0; i < opts.length; i++) {
-					IOption option = opts[i];
-					if (option.getValueType() == IOption.LIBRARIES) {
-						try {
-							String command = option.getCommand();
-							String[] allLibs = option.getLibraries();
-							for (int j = 0; j < allLibs.length; j++) {
-								String string = allLibs[j];
-								libs.add(command + string);
-							}
-						} catch (BuildException e) {
-							continue;
-						}
-					}
-				}
-			}
-		}
-		libs.trimToSize();
-		return (String[])libs.toArray(new String[libs.size()]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getMakeArguments()
-	 */
-	public String[] getMakeArguments() {
-		// TODO Stop hard-coding this
-		String[] args = {""}; 
-
-		return args;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getMakeCommand()
-	 */
-	public String getMakeCommand() {
-		String command = new String();
-		ITarget target = getDefaultTarget();
-		command = target.getMakeCommand();
-		return command;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getOutputExtension(java.lang.String)
-	 */
-	public String getOutputExtension(String resourceExtension) {
-		// Get all the tools for the current config
-		IConfiguration config = getDefaultConfiguration(getDefaultTarget());
-		ITool[] tools = config.getTools();
-		for (int index = 0; index < tools.length; index++) {
-			ITool tool = tools[index];
-			String output = tool.getOutputExtension(resourceExtension);
-			if (output != null) {
-				return output;
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getOutputFlag()
-	 */
-	public String getOutputFlag(String outputExt) {
-		// Treat null extension as an empty string
-		String ext = outputExt == null ? new String() : outputExt;
-		
-		// Get all the tools for the current config
-		String flags = new String();
-		IConfiguration config = getDefaultConfiguration(getDefaultTarget());
-		ITool[] tools = config.getTools();
-		for (int index = 0; index < tools.length; index++) {
-			ITool tool = tools[index];
-			if (tool.producesFileType(ext)) {
-				flags = tool.getOutputFlag();
-			}
-		}
-		return flags;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getOutputPrefix(java.lang.String)
-	 */
-	public String getOutputPrefix(String outputExtension) {
-		// Treat null extensions as empty string
-		String ext = outputExtension == null ? new String() : outputExtension;
-		
-		// Get all the tools for the current config
-		String flags = new String();
-		IConfiguration config = getDefaultConfiguration(getDefaultTarget());
-		ITool[] tools = config.getTools();
-		for (int index = 0; index < tools.length; index++) {
-			ITool tool = tools[index];
-			if (tool.producesFileType(ext)) {
-				flags = tool.getOutputPrefix();
-			}
-		}
-		return flags;
-	}
-
-	public IResource getOwner() {
-		return owner;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getTarget(org.eclipse.cdt.core.build.managed.IConfiguration)
-	 */
-	public ITarget getTarget(String id) {
-		return (ITarget) targetMap.get(id);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getTargets(org.eclipse.cdt.core.build.managed.IConfiguration)
-	 */
-	public List getTargets() {
-		return targets;	
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getToolForSource(java.lang.String)
-	 */
-	public String getToolForSource(String extension) {
-		// Get all the tools for the current config
-		IConfiguration config = getDefaultConfiguration(getDefaultTarget());
-		ITool[] tools = config.getTools();
-		for (int index = 0; index < tools.length; index++) {
-			ITool tool = tools[index];
-			if (tool.buildsFileType(extension)) {
-				return tool.getToolCommand();
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getToolInvocation(java.lang.String)
-	 */
-	public String getToolForTarget(String extension) {
-		// Treat a null argument as an empty string
-		String ext = extension == null ? new String() : extension;
-		// Get all the tools for the current config
-		IConfiguration config = getDefaultConfiguration(getDefaultTarget());
-		ITool[] tools = config.getTools();
-		for (int index = 0; index < tools.length; index++) {
-			ITool tool = tools[index];
-			if (tool.producesFileType(ext)) {
-				return tool.getToolCommand();
-			}
-		}
-		return null;
-	}
-
-	public void serialize(Document doc, Element element) {
-		// Write out each target and their default config
-		for (int i = 0; i < targets.size(); ++i) {
-			Element targetElement = doc.createElement("target");
-			element.appendChild(targetElement);
-			((Target)targets.get(i)).serialize(doc, targetElement);
-			IConfiguration config = getDefaultConfiguration((ITarget)targets.get(i));
-			if (config != null) {
-				Element configEl = doc.createElement("defaultConfig");
-				element.appendChild(configEl);
-				configEl.setAttribute("id", config.getId());
-			}
-		}
-		// Persist the default target
-		if (getDefaultTarget() != null){
-			Element targEl = doc.createElement("defaultTarget");
-			element.appendChild(targEl);
-			targEl.setAttribute("id", getDefaultTarget().getId());
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#setDefaultConfiguration(org.eclipse.cdt.core.build.managed.IConfiguration)
-	 */
-	public void setDefaultConfiguration(IConfiguration configuration) {
-		// Get the target associated with the argument
-		ITarget target = configuration.getTarget();
-		// Make sure it is the default
-		setDefaultTarget(target);
-		defaultConfigurations.put(target.getId(), configuration);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#setDefaultTarget(org.eclipse.cdt.core.build.managed.ITarget)
-	 */
-	public void setDefaultTarget(ITarget target) {
-		if (defaultTarget != null && defaultTarget.getId().equals(target.getId())) {
-			return;
-		}
-		defaultTarget = target;		
-	}
-
-}
Index: build/org/eclipse/cdt/internal/core/build/managed/Option.java
===================================================================
RCS file: build/org/eclipse/cdt/internal/core/build/managed/Option.java
diff -N build/org/eclipse/cdt/internal/core/build/managed/Option.java
--- build/org/eclipse/cdt/internal/core/build/managed/Option.java	20 Aug 2003 17:52:32 -0000	1.10
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,317 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.internal.core.build.managed;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.build.managed.BuildException;
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.IOption;
-import org.eclipse.cdt.core.build.managed.IOptionCategory;
-import org.eclipse.cdt.core.build.managed.ITool;
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * 
- */
-public class Option extends BuildObject implements IOption {
-	// Static default return values
-	private static final String EMPTY_STRING = new String();
-	private static final String[] EMPTY_STRING_ARRAY = new String[0];
-
-	// Private bookeeping attributes
-	private List builtIns;
-	private IOptionCategory category;
-	private String command;
-	private String defaultEnumName;
-	private Map enumCommands;
-	private ITool tool;
-	private Object value;
-	private int valueType;
-	
-	 
-	public Option(ITool tool) {
-		this.tool = tool;
-	}
-	
-	public Option(Tool tool, IConfigurationElement element) {
-		this(tool);
-		
-		// Get the unique id of the option
-		setId(element.getAttribute(IOption.ID));
-		
-		// Hook me up to a tool
-		tool.addOption(this);
-		
-		// Get the option Name (this is what the user will see in the UI)
-		setName(element.getAttribute(IOption.NAME));
-
-		// Options can be grouped into categories
-		String categoryId = element.getAttribute(IOption.CATEGORY);
-		if (categoryId != null)
-			setCategory(tool.getOptionCategory(categoryId));
-		
-		// Get the command defined for the option
-		command = element.getAttribute(IOption.COMMAND);
-		
-		// Options hold different types of values
-		String valueTypeStr = element.getAttribute(IOption.VALUE_TYPE);
-		if (valueTypeStr == null)
-			valueType = -1;
-		else if (valueTypeStr.equals(IOption.TYPE_STRING))
-			valueType = IOption.STRING;
-		else if (valueTypeStr.equals(IOption.TYPE_STR_LIST))
-			valueType = IOption.STRING_LIST;
-		else if (valueTypeStr.equals(IOption.TYPE_BOOL))
-			valueType = IOption.BOOLEAN;
-		else if (valueTypeStr.equals(IOption.TYPE_ENUM))
-			valueType = IOption.ENUMERATED;
-		else if (valueTypeStr.equals(IOption.TYPE_INC_PATH))
-			valueType = IOption.INCLUDE_PATH;
-		else if (valueTypeStr.equals(IOption.TYPE_LIB))
-			valueType = IOption.LIBRARIES;
-		else
-			valueType = IOption.PREPROCESSOR_SYMBOLS;
-		
-		// Now get the actual value
-		enumCommands = new HashMap();
-		switch (valueType) {
-			case IOption.BOOLEAN:
-				// Convert the string to a boolean
-				value = new Boolean(element.getAttribute(IOption.DEFAULT_VALUE));
-				break;
-			case IOption.STRING:
-				// Just get the value out of the option directly
-				value = element.getAttribute(IOption.DEFAULT_VALUE);
-			break;
-			case IOption.ENUMERATED:
-				List enumList = new ArrayList();
-				IConfigurationElement[] enumElements = element.getChildren(IOption.ENUM_VALUE);
-				for (int i = 0; i < enumElements.length; ++i) {
-					String optName = enumElements[i].getAttribute(IOption.NAME);
-					String optCommand = enumElements[i].getAttribute(IOption.COMMAND); 
-					enumList.add(optName);
-					enumCommands.put(optName, optCommand);
-					Boolean isDefault = new Boolean(enumElements[i].getAttribute(IOption.IS_DEFAULT));
-					if (isDefault.booleanValue()) {
-						defaultEnumName = optName; 
-					}
-				}
-				value = enumList;
-				break;
-			case IOption.STRING_LIST:
-			case IOption.INCLUDE_PATH:
-			case IOption.PREPROCESSOR_SYMBOLS:
-			case IOption.LIBRARIES:
-				List valueList = new ArrayList();
-				builtIns = new ArrayList();
-				IConfigurationElement[] valueElements = element.getChildren(IOption.LIST_VALUE);
-				for (int i = 0; i < valueElements.length; ++i) {
-					IConfigurationElement valueElement = valueElements[i];
-					Boolean isBuiltIn = new Boolean(valueElement.getAttribute(IOption.LIST_ITEM_BUILTIN));
-					if (isBuiltIn.booleanValue()) {
-						builtIns.add(valueElement.getAttribute(IOption.LIST_ITEM_VALUE));
-					}
-					else {
-						valueList.add(valueElement.getAttribute(IOption.LIST_ITEM_VALUE));
-					}
-				}
-				value = valueList;
-				break;
-			default :
-				break;
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getApplicableValues()
-	 */
-	public String[] getApplicableValues() {
-		List enumValues = (List)value;
-		return enumValues != null
-			? (String[])enumValues.toArray(new String[enumValues.size()])
-			: EMPTY_STRING_ARRAY;
-	}
-
-	public boolean getBooleanValue() {
-		Boolean bool = (Boolean) value;
-		return bool.booleanValue();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getBuiltIns()
-	 */
-	public String[] getBuiltIns() {
-		// Return the list of built-ins as an array
-		return builtIns == null ?
-			   EMPTY_STRING_ARRAY:
-			   (String[])builtIns.toArray(new String[builtIns.size()]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getCategory()
-	 */
-	public IOptionCategory getCategory() {
-		return category != null ? category : getTool().getTopOptionCategory();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getCommand()
-	 */
-	public String getCommand() {
-		return command;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getDefinedSymbols()
-	 */
-	public String[] getDefinedSymbols() throws BuildException {
-		if (valueType != IOption.PREPROCESSOR_SYMBOLS) {
-			throw new BuildException("bad value type");
-		}
-		List v = (List)value;
-		return v != null
-			? (String[])v.toArray(new String[v.size()])
-			: EMPTY_STRING_ARRAY;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getEnumCommand(java.lang.String)
-	 */
-	public String getEnumCommand(String name) {
-		String cmd = (String) enumCommands.get(name); 
-		return cmd == null ? EMPTY_STRING : cmd;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getIncludePaths()
-	 */
-	public String[] getIncludePaths() throws BuildException {
-		if (valueType != IOption.INCLUDE_PATH) {
-			throw new BuildException("bad value type");
-		}
-		List v = (List)value;
-		return v != null
-			? (String[])v.toArray(new String[v.size()])
-			: EMPTY_STRING_ARRAY;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getLibraries()
-	 */
-	public String[] getLibraries() throws BuildException {
-		if (valueType != IOption.LIBRARIES) {
-			throw new BuildException("bad value type");
-		}
-		List v = (List)value;
-		return v != null
-			? (String[])v.toArray(new String[v.size()])
-			: EMPTY_STRING_ARRAY;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getDefaultEnumValue()
-	 */
-	public String getSelectedEnum() throws BuildException {
-		if (valueType != IOption.ENUMERATED) {
-			throw new BuildException("bad value type");
-		}
-		return defaultEnumName == null ? EMPTY_STRING : defaultEnumName;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getStringListValue()
-	 */
-	public String[] getStringListValue() throws BuildException {
-		if (valueType != IOption.STRING_LIST) {
-			throw new BuildException("bad value type");
-		}
-		List v = (List)value;
-		return v != null
-			? (String[])v.toArray(new String[v.size()])
-			: EMPTY_STRING_ARRAY;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getStringValue()
-	 */
-	public String getStringValue() throws BuildException {
-		if (valueType != IOption.STRING) {
-			throw new BuildException("bad value type");
-		}
-		return value == null ? EMPTY_STRING : (String)value;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getTool()
-	 */
-	public ITool getTool() {
-		return tool;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getValueType()
-	 */
-	public int getValueType() {
-		return valueType;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#setCategory(org.eclipse.cdt.core.build.managed.IOptionCategory)
-	 */
-	public void setCategory(IOptionCategory category) {
-		this.category = category;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#setStringValue(org.eclipse.cdt.core.build.managed.IConfiguration, java.lang.String)
-	 */
-	public IOption setValue(IConfiguration config, String value)
-		throws BuildException
-	{
-		if (valueType != IOption.STRING
-			|| valueType != IOption.ENUMERATED)
-			throw new BuildException("Bad value for type");
-
-		if (config == null) {
-			this.value = value;
-			return this;
-		} else {
-			// Magic time
-			return null;
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#setStringValue(org.eclipse.cdt.core.build.managed.IConfiguration, java.lang.String[])
-	 */
-	public IOption setValue(IConfiguration config, String[] value)
-		throws BuildException
-	{
-		if (valueType != IOption.STRING_LIST 
-			|| valueType != IOption.INCLUDE_PATH
-			|| valueType != IOption.PREPROCESSOR_SYMBOLS
-			|| valueType != IOption.LIBRARIES)
-			throw new BuildException("Bad value for type");
-		
-		if (config == null) {
-			this.value = value;
-			return this;
-		} else {
-			// More magic
-			return null;
-		}
-	}
-
-}
Index: build/org/eclipse/cdt/internal/core/build/managed/OptionCategory.java
===================================================================
RCS file: build/org/eclipse/cdt/internal/core/build/managed/OptionCategory.java
diff -N build/org/eclipse/cdt/internal/core/build/managed/OptionCategory.java
--- build/org/eclipse/cdt/internal/core/build/managed/OptionCategory.java	31 Jul 2003 13:20:37 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,120 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.internal.core.build.managed;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.IOption;
-import org.eclipse.cdt.core.build.managed.IOptionCategory;
-import org.eclipse.cdt.core.build.managed.ITool;
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * 
- */
-public class OptionCategory extends BuildObject implements IOptionCategory {
-
-	private IOptionCategory owner;
-	private List children;
-
-	private static final IOptionCategory[] emtpyCategories = new IOptionCategory[0];
-	
-	public OptionCategory(IOptionCategory owner) {
-		this.owner = owner;
-	}
-	
-	public OptionCategory(Tool tool, IConfigurationElement element) {
-		String parentId = element.getAttribute(IOptionCategory.PARENT);
-		if (parentId != null)
-			owner = tool.getOptionCategory(element.getAttribute(IOptionCategory.PARENT));
-		else
-			owner = tool;
-		
-		// id
-		setId(element.getAttribute(IOptionCategory.ID));
-		
-		// Name
-		setName(element.getAttribute(IOptionCategory.NAME));
-		
-		// Hook me in
-		if (owner instanceof Tool)
-			((Tool)owner).addChildCategory(this);
-		else
-			((OptionCategory)owner).addChildCategory(this);
-
-		tool.addOptionCategory(this);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOptionCategory#getChildCategories()
-	 */
-	public IOptionCategory[] getChildCategories() {
-		if (children != null)
-			return (IOptionCategory[])children.toArray(new IOptionCategory[children.size()]);
-		else
-			return emtpyCategories;
-	}
-
-	public void addChildCategory(OptionCategory category) {
-		if (children == null)
-			children = new ArrayList();
-		children.add(category);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOptionCategory#getOwner()
-	 */
-	public IOptionCategory getOwner() {
-		return owner;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOptionCategory#getTool()
-	 */
-	public ITool getTool() {
-		// This will stop at the Tool's top category
-		return owner.getTool();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOptionCategory#getOptions(org.eclipse.cdt.core.build.managed.ITool)
-	 */
-	public IOption[] getOptions(IConfiguration configuration) {
-		ITool tool = getTool();
-		if (configuration != null) {
-			// TODO don't like this much
-			ITool[] tools = configuration.getTools();
-			for (int i = 0; i < tools.length; ++i) {
-				if (tools[i] instanceof ToolReference) {
-					if (((ToolReference)tools[i]).references(tool)) {
-						tool = tools[i];
-						break;
-					}
-				} else if (tools[i].equals(tool))
-					break;
-			}
-		}
-
-		IOption[] allOptions = tool.getOptions();
-		List myOptions = new ArrayList();
-			
-		for (int i = 0; i < allOptions.length; ++i) {
-			IOption option = allOptions[i];
-			if (option.getCategory().equals(this))
-				myOptions.add(option);
-		}
-
-		return (IOption[])myOptions.toArray(new IOption[myOptions.size()]);
-	}
-
-}
Index: build/org/eclipse/cdt/internal/core/build/managed/OptionReference.java
===================================================================
RCS file: build/org/eclipse/cdt/internal/core/build/managed/OptionReference.java
diff -N build/org/eclipse/cdt/internal/core/build/managed/OptionReference.java
--- build/org/eclipse/cdt/internal/core/build/managed/OptionReference.java	20 Aug 2003 17:52:32 -0000	1.12
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,412 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.internal.core.build.managed;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.cdt.core.build.managed.BuildException;
-import org.eclipse.cdt.core.build.managed.IOption;
-import org.eclipse.cdt.core.build.managed.IOptionCategory;
-import org.eclipse.cdt.core.build.managed.ITool;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * 
- */
-public class OptionReference implements IOption {
-
-	// List of built-in values a tool defines
-	private List builtIns;
-	// Used for all option references that override the command
-	private String command;
-	// The option this reference overrides
-	private IOption option;
-	// The owner of the reference
-	private ToolReference owner;
-	// The actual value of the reference
-	private Object value;
-
-	/**
-	 * Created internally.
-	 * 
-	 * @param owner
-	 * @param option
-	 */
-	public OptionReference(ToolReference owner, IOption option) {
-		this.owner = owner;
-		this.option = option;
-		
-		// Until the option reference is changed, all values will be extracted from original option		
-		owner.addOptionReference(this);
-	}
-
-	/**
-	 * Created from extension point.
-	 * 
-	 * @param owner
-	 * @param element
-	 */
-	public OptionReference(ToolReference owner, IConfigurationElement element) {
-		this.owner = owner;
-		option = owner.getTool().getOption(element.getAttribute(IOption.ID));
-		
-		owner.addOptionReference(this);
-
-		// value
-		switch (option.getValueType()) {
-			case IOption.BOOLEAN:
-				value = new Boolean(element.getAttribute(IOption.DEFAULT_VALUE));
-				break;
-			case IOption.STRING:
-				value = element.getAttribute(IOption.DEFAULT_VALUE);
-				break;
-			case IOption.ENUMERATED:
-				try {
-					value = option.getSelectedEnum();
-				} catch (BuildException e) {
-					value = new String();
-				}
-				break;
-			case IOption.STRING_LIST:
-			case IOption.INCLUDE_PATH:
-			case IOption.PREPROCESSOR_SYMBOLS:
-			case IOption.LIBRARIES:
-				List valueList = new ArrayList();
-				builtIns = new ArrayList();
-				IConfigurationElement[] valueElements = element.getChildren(IOption.LIST_VALUE);
-				for (int i = 0; i < valueElements.length; ++i) {
-					IConfigurationElement valueElement = valueElements[i];
-					Boolean isBuiltIn = new Boolean(valueElement.getAttribute(IOption.LIST_ITEM_BUILTIN));
-					if (isBuiltIn.booleanValue()) {
-						builtIns.add(valueElement.getAttribute(IOption.LIST_ITEM_VALUE));
-					}
-					else {
-						valueList.add(valueElement.getAttribute(IOption.LIST_ITEM_VALUE));
-					}				}
-				value = valueList;
-				break;
-		}
-	}
-
-	/**
-	 * Created from project file.
-	 * 
-	 * @param owner
-	 * @param element
-	 */
-	public OptionReference(ToolReference owner, Element element) {
-		this.owner = owner;	
-		option = owner.getTool().getOption(element.getAttribute(IOption.ID));
-		
-		owner.addOptionReference(this);
-
-		// value
-		switch (option.getValueType()) {
-			case IOption.BOOLEAN:
-				value = new Boolean(element.getAttribute(IOption.DEFAULT_VALUE));
-				break;
-			case IOption.STRING:
-			case IOption.ENUMERATED:
-				value = (String) element.getAttribute(IOption.DEFAULT_VALUE);
-				break;
-			case IOption.STRING_LIST:
-			case IOption.INCLUDE_PATH:
-			case IOption.PREPROCESSOR_SYMBOLS:
-			case IOption.LIBRARIES:
-				List valueList = new ArrayList();
-				builtIns = new ArrayList();
-				NodeList nodes = element.getElementsByTagName(IOption.LIST_VALUE);
-				for (int i = 0; i < nodes.getLength(); ++i) {
-					Node node = nodes.item(i);
-					if (node.getNodeType() == Node.ELEMENT_NODE) {
-						Boolean isBuiltIn = new Boolean(((Element)node).getAttribute(IOption.LIST_ITEM_BUILTIN));
-						if (isBuiltIn.booleanValue()) {
-							builtIns.add(((Element)node).getAttribute(IOption.LIST_ITEM_VALUE));
-						} else {
-							valueList.add(((Element)node).getAttribute(IOption.LIST_ITEM_VALUE));
-						}
-					}
-				}
-				value = valueList;
-				break;
-		}
-
-	}
-	
-	/**
-	 * Persist receiver to project file.
-	 * 
-	 * @param doc
-	 * @param element
-	 */
-	public void serialize(Document doc, Element element) {
-		element.setAttribute(IOption.ID, option.getId());
-		
-		// value
-		switch (option.getValueType()) {
-			case IOption.BOOLEAN:
-				element.setAttribute(IOption.DEFAULT_VALUE, ((Boolean)value).toString());
-				break;
-			case IOption.STRING:
-			case IOption.ENUMERATED:
-				element.setAttribute(IOption.DEFAULT_VALUE, (String)value);
-				break;
-			case IOption.STRING_LIST:
-			case IOption.INCLUDE_PATH:
-			case IOption.PREPROCESSOR_SYMBOLS:
-			case IOption.LIBRARIES:
-				ArrayList stringList = (ArrayList)value;
-				ListIterator iter = stringList.listIterator();
-				while (iter.hasNext()) {
-					Element valueElement = doc.createElement(IOption.LIST_VALUE);
-					valueElement.setAttribute(IOption.LIST_ITEM_VALUE, (String)iter.next());
-					valueElement.setAttribute(IOption.LIST_ITEM_BUILTIN, "false");
-					element.appendChild(valueElement);
-				}
-				// Serialize the built-ins that have been overridden
-				if (builtIns != null) {
-					iter = builtIns.listIterator();
-					while (iter.hasNext()) {
-						Element valueElement = doc.createElement(IOption.LIST_VALUE);
-						valueElement.setAttribute(IOption.LIST_ITEM_VALUE, (String)iter.next());
-						valueElement.setAttribute(IOption.LIST_ITEM_BUILTIN, "true");
-						element.appendChild(valueElement);
-					}
-				}
-				break;
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getApplicableValues()
-	 */
-	public String[] getApplicableValues() {
-		return option.getApplicableValues();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getCategory()
-	 */
-	public IOptionCategory getCategory() {
-		return option.getCategory();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getCommand()
-	 */
-	public String getCommand() {
-		return option.getCommand();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getDefinedSymbols()
-	 */
-	public String[] getDefinedSymbols() throws BuildException {
-		if (value == null)
-			return option.getDefinedSymbols();
-		else if (getValueType() == IOption.PREPROCESSOR_SYMBOLS) {
-			ArrayList list = (ArrayList)value;
-			return (String[]) list.toArray(new String[list.size()]);
-		}
-		else
-			throw new BuildException("bad value type");
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getEnumCommand(java.lang.String)
-	 */
-	public String getEnumCommand(String name) {
-		return option.getEnumCommand(name);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IBuildObject#getId()
-	 */
-	public String getId() {
-		// A reference has the same id as the option it references
-		return option.getId();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getIncludePaths()
-	 */
-	public String[] getIncludePaths() throws BuildException {
-		if (value == null)
-			return option.getIncludePaths();
-		else if (getValueType() == IOption.INCLUDE_PATH) {
-			ArrayList list = (ArrayList)value;
-			return (String[]) list.toArray(new String[list.size()]);
-		}
-		else
-			throw new BuildException("bad value type");
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getLibraries()
-	 */
-	public String[] getLibraries() throws BuildException {
-		if (value == null)
-			return option.getLibraries();
-		else if (getValueType() == IOption.LIBRARIES) {
-			ArrayList list = (ArrayList)value;
-			return (String[]) list.toArray(new String[list.size()]);
-		}
-		else
-			throw new BuildException("bad value type");
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IBuildObject#getName()
-	 */
-	public String getName() {
-		// A reference has the same name as the option it references
-		return option.getName();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getBooleanValue()
-	 */
-	public boolean getBooleanValue() throws BuildException {
-		if (value == null){
-			return option.getBooleanValue();
-		} 
-		else if (getValueType() == IOption.BOOLEAN) {
-			Boolean bool = (Boolean) value;
-			return bool.booleanValue();
-		} else {
-			throw new BuildException("bad value type");
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getBuiltIns()
-	 */
-	public String[] getBuiltIns() {
-		// Return any overridden built-ins here, or the default set 
-		// from the option this is a reference to
-		return builtIns == null ?
-			   option.getBuiltIns():
-			   (String[])builtIns.toArray(new String[builtIns.size()]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getDefaultEnumValue()
-	 */
-	public String getSelectedEnum() throws BuildException {
-		if (value == null) {
-			// Return the default defined for the enumeration in the manifest.
-			return option.getSelectedEnum();
-		} else if (getValueType() == IOption.ENUMERATED) {
-			// Value will contain the human-readable name of the enum 
-			return (String) value;
-		} else {
-			throw new BuildException("bad value type");
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getStringListValue()
-	 */
-	public String[] getStringListValue() throws BuildException {
-		if (value == null)
-			return option.getStringListValue();
-		else if (getValueType() == IOption.STRING_LIST) {
-			ArrayList list = (ArrayList)value;
-			return (String[]) list.toArray(new String[list.size()]);
-		}
-		else
-			throw new BuildException("bad value type");
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getStringValue()
-	 */
-	public String getStringValue() throws BuildException {
-		if (value == null)
-			return option.getStringValue();
-		else if (getValueType() == IOption.STRING)
-			return (String)value;
-		else
-			throw new BuildException("bad value type");
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getTool()
-	 */
-	public ITool getTool() {
-		return owner;
-	}
-
-	public ToolReference getToolReference() {
-		return owner;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOption#getValueType()
-	 */
-	public int getValueType() {
-		return option.getValueType();
-	}
-
-	public boolean references(IOption target) {
-		if (equals(target))
-			// we are the target
-			return true;
-		else if (option instanceof OptionReference)
-			// check the reference we are overriding
-			return ((OptionReference)option).references(target);
-		else
-			// the real reference
-			return option.equals(target);
-	}
-
-	/**
-	 * @param value
-	 */
-	public void setValue(boolean value) throws BuildException {
-		if (getValueType() == IOption.BOOLEAN)
-			this.value = new Boolean(value);
-		else
-			throw new BuildException("bad value type");
-	}
-
-	public void setValue(String value) throws BuildException {
-		if (getValueType() == IOption.STRING || getValueType() == IOption.ENUMERATED)
-			this.value = value;
-		else
-			throw new BuildException("bad value type");
-	}
-	
-	/**
-	 * Sets the value of the receiver to be an array of items.
-	 * 
-	 * @param value An array of strings to place in the option reference.
-	 * @throws BuildException
-	 */
-	public void setValue(String [] value) throws BuildException {
-		if (getValueType() == IOption.STRING_LIST
-			|| getValueType() == IOption.INCLUDE_PATH
-			|| getValueType() == IOption.PREPROCESSOR_SYMBOLS
-			|| getValueType() == IOption.LIBRARIES) {
-			// Just replace what the option reference is holding onto 
-			this.value = new ArrayList(Arrays.asList(value));
-		}
-		else
-			throw new BuildException("bad value type");
-	}
-}
Index: build/org/eclipse/cdt/internal/core/build/managed/Target.java
===================================================================
RCS file: build/org/eclipse/cdt/internal/core/build/managed/Target.java
diff -N build/org/eclipse/cdt/internal/core/build/managed/Target.java
--- build/org/eclipse/cdt/internal/core/build/managed/Target.java	11 Sep 2003 14:46:14 -0000	1.12
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,371 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.internal.core.build.managed;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.IManagedBuildInfo;
-import org.eclipse.cdt.core.build.managed.ITarget;
-import org.eclipse.cdt.core.build.managed.ITool;
-import org.eclipse.cdt.core.build.managed.ManagedBuildManager;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * 
- */
-public class Target extends BuildObject implements ITarget {
-
-	private String artifactName;
-	private String cleanCommand;
-	private Map configMap;
-	private List configurations;
-	private String defaultExtension;
-	private boolean isAbstract = false;
-	private boolean isTest = false;
-	private String makeCommand;
-	private IResource owner;
-	private ITarget parent;
-	private Map toolMap;
-	private List tools;
-
-	private static final IConfiguration[] emptyConfigs = new IConfiguration[0];
-	private static final String EMPTY_STRING = new String();
-	
-	public Target(IResource owner) {
-		this.owner = owner;
-	}
-	
-	/**
-	 * Create a target owned by a resource based on a parent target
-	 * 
-	 * @param owner 
-	 * @param parent
-	 */
-	public Target(IResource owner, ITarget parent) {
-		// Make the owner of the target the project resource
-		this(owner);
-		
-		// Copy the parent's identity
-		this.parent = parent;
-		setId(parent.getId() + ".1");		
-		setName(parent.getName());
-		this.artifactName = parent.getArtifactName();
-		this.defaultExtension = parent.getDefaultExtension();
-		this.isTest = parent.isTestTarget();
-		this.cleanCommand = parent.getCleanCommand();
-		this.makeCommand = parent.getMakeCommand();
-
-		// Hook me up
-		IManagedBuildInfo buildInfo = ManagedBuildManager.getBuildInfo(owner, true);
-		buildInfo.addTarget(this);
-	}
-
-	/**
-	 * This constructor is called to create a target defined by an extension.
-	 * 
-	 * @param element
-	 */
-	public Target(IConfigurationElement element) {
-		// id
-		setId(element.getAttribute("id"));
-		
-		// hook me up
-		ManagedBuildManager.addExtensionTarget(this);
-		
-		// Get the target name
-		setName(element.getAttribute("name"));
-
-		// Get the name of the build artifact associated with target (usually 
-		// in the plugin specification).
-		artifactName = element.getAttribute("artifactName");
-		
-		// Get the default extension
-		defaultExtension = element.getAttribute("defaultExtension");
-
-		// parent
-		String parentId = element.getAttribute("parent");
-		if (parentId != null) {
-			parent = ManagedBuildManager.getTarget(null, parentId);
-			// copy over the parents configs
-			IConfiguration[] parentConfigs = parent.getConfigurations();
-			for (int i = 0; i < parentConfigs.length; ++i)
-				addConfiguration(parentConfigs[i]);
-		}
-
-		// isAbstract
-		if ("true".equals(element.getAttribute("isAbstract")))
-			isAbstract = true;
-
-		// Is this a test target
-		isTest = ("true".equals(element.getAttribute("isTest")));
-		
-		// Get the clean command
-		cleanCommand = element.getAttribute("cleanCommand");
-		if (cleanCommand == null) {
-			// See if it defined in the parent
-			cleanCommand = parent.getCleanCommand();
-		}
-
-		// Get the make command
-		makeCommand = element.getAttribute("makeCommand");
-		if (makeCommand == null) {
-			// See if it defined in the parent
-			makeCommand = parent.getMakeCommand();
-		}
-
-		IConfigurationElement[] targetElements = element.getChildren();
-		for (int k = 0; k < targetElements.length; ++k) {
-			IConfigurationElement targetElement = targetElements[k];
-			if (targetElement.getName().equals(ITool.TOOL_ELEMENT_NAME)) {
-				new Tool(this, targetElement);
-			} else if (targetElement.getName().equals(IConfiguration.CONFIGURATION_ELEMENT_NAME)) {
-				new Configuration(this, targetElement);
-			}
-		}
-
-	}
-
-	/**
-	 * Create target from project file
-	 * 
-	 * @param buildInfo
-	 * @param element
-	 */
-	public Target(ManagedBuildInfo buildInfo, Element element) {
-		this(buildInfo.getOwner());
-		
-		// id
-		setId(element.getAttribute("id"));
-		
-		// hook me up
-		buildInfo.addTarget(this);
-		
-		// name
-		setName(element.getAttribute("name"));
-
-		// Get the name of the build artifact associated with target (should
-		// contain what the user entered in the UI).
-		artifactName = element.getAttribute("artifactName");
-
-		// Get the default extension
-		defaultExtension = element.getAttribute("defaultExtension");
-
-		// parent
-		String parentId = element.getAttribute("parent");
-		if (parentId != null)
-			parent = ManagedBuildManager.getTarget(null, parentId);
-
-		// isAbstract
-		if ("true".equals(element.getAttribute("isAbstract")))
-			isAbstract = true;
-			
-		// Is this a test target
-		isTest = ("true".equals(element.getAttribute("isTest")));
-		
-		// Get the clean command
-		cleanCommand = element.getAttribute("cleanCommand");
-		
-		// Get the make command
-		makeCommand = element.getAttribute("makeCommand");
-	
-		Node child = element.getFirstChild();
-		while (child != null) {
-			if (child.getNodeName().equals(IConfiguration.CONFIGURATION_ELEMENT_NAME)) {
-				new Configuration(this, (Element)child);
-			}
-			child = child.getNextSibling();
-		}
-	}
-	
-	/**
-	 * Persist receiver to project file.
-	 * 
-	 * @param doc
-	 * @param element
-	 */
-	public void serialize(Document doc, Element element) {
-		element.setAttribute("id", getId());
-		element.setAttribute("name", getName());
-		if (parent != null)
-			element.setAttribute("parent", parent.getId());
-		element.setAttribute("isAbstract", isAbstract ? "true" : "false");
-		element.setAttribute("artifactName", getArtifactName());
-		element.setAttribute("defaultExtension", getDefaultExtension());
-		element.setAttribute("isTest", isTest ? "true" : "false");
-		element.setAttribute("cleanCommand", getCleanCommand());
-		element.setAttribute("makeCommand", getMakeCommand());
-				
-		if (configurations != null)
-			for (int i = 0; i < configurations.size(); ++i) {
-				Configuration config = (Configuration)configurations.get(i);
-				Element configElement = doc.createElement("configuration");
-				element.appendChild(configElement);
-				config.serialize(doc, configElement);
-			}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITarget#getMakeCommand()
-	 */
-	public String getMakeCommand() {
-		// Return the name of the make utility
-		return makeCommand == null ? EMPTY_STRING : makeCommand;
-	}
-
-	public String getName() {
-		return (name == null && parent != null) ? parent.getName() : name;
-	}
-
-	public ITarget getParent() {
-		return parent;
-	}
-	
-	public IResource getOwner() {
-		return owner;
-	}
-
-	private int getNumTools() {
-		int n = (tools == null) ? 0 : tools.size();
-		if (parent != null)
-			n += ((Target)parent).getNumTools();
-		return n;
-	}
-	
-	private int addToolsToArray(ITool[] toolArray, int start) {
-		int n = start;
-		if (parent != null)
-			n = ((Target)parent).addToolsToArray(toolArray, start);
-
-		if (tools != null) {
-			for (int i = 0; i < tools.size(); ++i)
-				toolArray[n++] = (ITool)tools.get(i); 
-		}
-		
-		return n;
-	}
-	
-	public ITool[] getTools() {
-		ITool[] toolArray = new ITool[getNumTools()];
-		addToolsToArray(toolArray, 0);
-		return toolArray;
-	}
-
-	public ITool getTool(String id) {
-		ITool result = null;
-		// See if receiver has it in list
-		result = (ITool)toolMap.get(id);
-		// If not, check if parent has it
-		if (result == null && parent != null) {
-			result = ((Target)parent).getTool(id);
-		}
-		return result;
-	}
-
-	public void addTool(ITool tool) {
-		if (tools == null) {
-			tools = new ArrayList();
-			toolMap = new HashMap();
-		}
-		
-		tools.add(tool);
-		toolMap.put(tool.getId(), tool);
-	}
-	
-	public IConfiguration[] getConfigurations() {
-		if (configurations != null)
-			return (IConfiguration[])configurations.toArray(new IConfiguration[configurations.size()]);
-		else
-			return emptyConfigs;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITarget#getDefaultExtension()
-	 */
-	public String getDefaultExtension() {
-		return defaultExtension == null ? EMPTY_STRING : defaultExtension;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITarget#getCleanCommand()
-	 */
-	public String getCleanCommand() {
-		// Return the command used to remove files
-		return cleanCommand == null ? EMPTY_STRING : cleanCommand;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITarget#getArtifactName()
-	 */
-	public String getArtifactName() {
-		// Return name or an empty string
-		return artifactName == null ? EMPTY_STRING : artifactName;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITarget#getConfiguration()
-	 */
-	public IConfiguration getConfiguration(String id) {
-		return (IConfiguration)configMap.get(id);
-	}
-
-	public void addConfiguration(IConfiguration configuration) {
-		if (configurations == null) {
-			configurations = new ArrayList();
-			configMap = new HashMap();
-		}
-		configurations.add(configuration);
-		configMap.put(configuration.getId(), configuration);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITarget#isAbstract()
-	 */
-	public boolean isAbstract() {
-		return isAbstract;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITarget#isTestTarget()
-	 */
-	public boolean isTestTarget() {
-		return isTest;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITarget#createConfiguration()
-	 */
-	public IConfiguration createConfiguration(String id) {
-		return new Configuration(this, id);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITarget#createConfiguration(org.eclipse.cdt.core.build.managed.IConfiguration)
-	 */
-	public IConfiguration createConfiguration(IConfiguration parent, String id) {
-		return new Configuration(this, parent, id);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITarget#setBuildArtifact(java.lang.String)
-	 */
-	public void setBuildArtifact(String name) {
-		artifactName = name;		
-	}
-
-}
Index: build/org/eclipse/cdt/internal/core/build/managed/Tool.java
===================================================================
RCS file: build/org/eclipse/cdt/internal/core/build/managed/Tool.java
diff -N build/org/eclipse/cdt/internal/core/build/managed/Tool.java
--- build/org/eclipse/cdt/internal/core/build/managed/Tool.java	18 Aug 2003 17:34:23 -0000	1.10
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,359 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.internal.core.build.managed;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.cdt.core.build.managed.BuildException;
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.IOption;
-import org.eclipse.cdt.core.build.managed.IOptionCategory;
-import org.eclipse.cdt.core.build.managed.ITarget;
-import org.eclipse.cdt.core.build.managed.ITool;
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * Represents a tool that can be invoked during a build.
- * Note that this class implements IOptionCategory to represent the top
- * category.
- */
-public class Tool extends BuildObject implements ITool, IOptionCategory {
-
-	private static final String DEFAULT_SEPARATOR = ",";
-	private static final IOptionCategory[] EMPTY_CATEGORIES = new IOptionCategory[0];
-	private static final IOption[] EMPTY_OPTIONS = new IOption[0];
-
-	private ITarget target;
-	private List options;
-	private Map optionMap;
-	private List childOptionCategories;
-	private Map categoryMap;
-	private String command;
-	private List inputExtensions;
-	private String outputExtension;
-	private String outputFlag;
-	private String outputPrefix;
-	
-	public Tool(Target target) {
-		this.target = target;
-	}
-	
-	/**
-	 * Constructor to create a new tool in the build model based on the information
-	 * defined in the plugin.xml manifest. 
-	 * 
-	 * @param target The target the receiver will belong to.
-	 * @param element The element containing the information.
-	 */
-	public Tool(Target target, IConfigurationElement element) {
-		this(target);
-
-		// id		
-		setId(element.getAttribute(ITool.ID));
-		
-		// hook me up
-		target.addTool(this);
-
-		// name
-		setName(element.getAttribute(ITool.NAME));
-		
-		// Get the supported input file extension
-		String inputs = element.getAttribute(ITool.SOURCES) == null ? 
-			new String() : 
-			element.getAttribute(ITool.SOURCES);
-		StringTokenizer tokenizer = new StringTokenizer(inputs, DEFAULT_SEPARATOR);
-		while (tokenizer.hasMoreElements()) {
-			getInputExtensions().add(tokenizer.nextElement());
-		}
-				
-		// Get the output extension
-		outputExtension = element.getAttribute(ITool.OUTPUTS) == null ? 
-			new String() : 
-			element.getAttribute(ITool.OUTPUTS);
-			
-		// Get the tool invocation
-		command = element.getAttribute(ITool.COMMAND) == null ? 
-			new String() : 
-			element.getAttribute(ITool.COMMAND);
-			
-		// Get the flag to control output
-		outputFlag = element.getAttribute(ITool.OUTPUT_FLAG) == null ?
-			new String() :
-			element.getAttribute(ITool.OUTPUT_FLAG);
-			
-		// Get the output prefix
-		outputPrefix = element.getAttribute(ITool.OUTPUT_PREFIX) == null ?
-			new String() :
-			element.getAttribute(ITool.OUTPUT_PREFIX);
-
-		// set up the category map
-		categoryMap = new HashMap();
-		addOptionCategory(this);
-
-		// Check for options
-		IConfigurationElement[] toolElements = element.getChildren();
-		for (int l = 0; l < toolElements.length; ++l) {
-			IConfigurationElement toolElement = toolElements[l];
-			if (toolElement.getName().equals(ITool.OPTION)) {
-				new Option(this, toolElement);
-			} else if (toolElement.getName().equals(ITool.OPTION_CAT)) {
-				new OptionCategory(this, toolElement);
-			}
-		}
-	}
-	
-	public IOptionCategory getOptionCategory(String id) {
-		return (IOptionCategory)categoryMap.get(id);
-	}
-	
-	void addOptionCategory(IOptionCategory category) {
-		categoryMap.put(category.getId(), category);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#handlesFileType(java.lang.String)
-	 */
-	public boolean buildsFileType(String extension) {
-		if (extension == null)  { 
-			return false;
-		}
-		return getInputExtensions().contains(extension);
-	}
-
-	void addChildCategory(IOptionCategory category) {
-		if (childOptionCategories == null)
-			childOptionCategories = new ArrayList();
-		childOptionCategories.add(category);
-	}
-	
-	public IOption[] getOptions() {
-		if (options != null)
-			return (IOption[])options.toArray(new IOption[options.size()]);
-		else
-			return EMPTY_OPTIONS;
-	}
-
-	public void addOption(Option option) {
-		if (options == null) {
-			options = new ArrayList();
-			optionMap = new HashMap();
-		}
-		options.add(option);
-		optionMap.put(option.getId(), option);
-	}
-	
-	public IOptionCategory getTopOptionCategory() {
-		return this;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOptionCategory#getChildCategories()
-	 */
-	public IOptionCategory[] getChildCategories() {
-		if (childOptionCategories != null)
-			return (IOptionCategory[])childOptionCategories.toArray(new IOptionCategory[childOptionCategories.size()]);
-		else
-			return EMPTY_CATEGORIES;
-	}
-
-	/* (non-Javadoc)
-	 * @return
-	 */
-	private List getInputExtensions() {
-		if (inputExtensions == null) {
-			inputExtensions = new ArrayList();
-		}
-		return inputExtensions;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOptionCategory#createChildCategory()
-	 */
-	public IOptionCategory createChildCategory() {
-		IOptionCategory category = new OptionCategory(this);
-		
-		if (childOptionCategories == null)
-			childOptionCategories = new ArrayList();
-		childOptionCategories.add(category);
-		
-		return category;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getOutputFlag()
-	 */
-	public String getOutputFlag() {
-		return outputFlag == null ? new String() : outputFlag;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getOutputPrefix()
-	 */
-	public String getOutputPrefix() {
-		return outputPrefix == null ? new String() : outputPrefix;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOptionCategory#getOwner()
-	 */
-	public IOptionCategory getOwner() {
-		return null;
-	}
-
-	public ITarget getTarget() {
-		return target;	
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOptionCategory#getTool()
-	 */
-	public ITool getTool() {
-		return this;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getToolCommand()
-	 */
-	public String getToolCommand() {
-		return command;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getToolFlags()
-	 */
-	public String getToolFlags() throws BuildException {
-		// Get all of the options
-		StringBuffer buf = new StringBuffer();
-		IOption[] opts = getOptions();
-		for (int index = 0; index < opts.length; index++) {
-			IOption option = opts[index];
-			switch (option.getValueType()) {
-				case IOption.BOOLEAN :
-					if (option.getBooleanValue()) {
-						buf.append(option.getCommand() + WHITE_SPACE);
-					}
-					break;
-				
-				case IOption.ENUMERATED :
-					String enum = option.getEnumCommand(option.getSelectedEnum());
-					if (enum.length() > 0) {
-						buf.append(enum + WHITE_SPACE);
-					}
-					break;
-				
-				case IOption.STRING :
-					String val = option.getStringValue();
-					if (val.length() > 0) { 
-						buf.append(val + WHITE_SPACE);
-					}
-					break;
-					
-				case IOption.STRING_LIST :
-					String listCmd = option.getCommand();
-					String[] list = option.getStringListValue();
-					for (int j = 0; j < list.length; j++) {
-						String temp = list[j];
-						buf.append(listCmd + temp + WHITE_SPACE);
-					}
-					break;
-					
-				case IOption.INCLUDE_PATH :
-					String incCmd = option.getCommand();
-					String[] paths = option.getIncludePaths();
-					for (int j = 0; j < paths.length; j++) {
-						String temp = paths[j];
-						buf.append(incCmd + temp + WHITE_SPACE);
-					}
-					break;
-
-				case IOption.PREPROCESSOR_SYMBOLS :
-					String defCmd = option.getCommand();
-					String[] symbols = option.getDefinedSymbols();
-					for (int j = 0; j < symbols.length; j++) {
-						String temp = symbols[j];
-						buf.append(defCmd + temp + WHITE_SPACE);
-					}
-					break;
-
-				default :
-					break;
-			}
-
-		}
-
-		return buf.toString();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IOptionCategory#getOptions(org.eclipse.cdt.core.build.managed.ITool)
-	 */
-	public IOption[] getOptions(IConfiguration configuration) {
-		ITool tool = this;
-		if (configuration != null) {
-			// TODO don't like this much
-			ITool[] tools = configuration.getTools();
-			for (int i = 0; i < tools.length; ++i) {
-				if (tools[i] instanceof ToolReference) {
-					if (((ToolReference)tools[i]).references(tool)) {
-						tool = tools[i];
-						break;
-					}
-				} else if (tools[i].equals(tool))
-					break;
-			}
-		}
-
-		IOption[] allOptions = tool.getOptions();
-		List myOptions = new ArrayList();
-			
-		for (int i = 0; i < allOptions.length; ++i) {
-			IOption option = allOptions[i];
-			if (option.getCategory().equals(this))
-				myOptions.add(option);
-		}
-
-		return (IOption[])myOptions.toArray(new IOption[myOptions.size()]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getOption(java.lang.String)
-	 */
-	public IOption getOption(String id) {
-		return (IOption)optionMap.get(id);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getOutput(java.lang.String)
-	 */
-	public String getOutputExtension(String inputExtension) {
-		// Examine the list of input extensions
-		ListIterator iter = getInputExtensions().listIterator();
-		while (iter.hasNext()) {
-			if (((String)iter.next()).equals(inputExtension)) {
-				return outputExtension;
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#producesFileType(java.lang.String)
-	 */
-	public boolean producesFileType(String outputExtension) {
-		return this.outputExtension.equals(outputExtension);
-	}
-
-}
Index: build/org/eclipse/cdt/internal/core/build/managed/ToolReference.java
===================================================================
RCS file: build/org/eclipse/cdt/internal/core/build/managed/ToolReference.java
diff -N build/org/eclipse/cdt/internal/core/build/managed/ToolReference.java
--- build/org/eclipse/cdt/internal/core/build/managed/ToolReference.java	31 Jul 2003 13:20:37 -0000	1.9
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,339 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.internal.core.build.managed;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.build.managed.BuildException;
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.IOption;
-import org.eclipse.cdt.core.build.managed.IOptionCategory;
-import org.eclipse.cdt.core.build.managed.ITarget;
-import org.eclipse.cdt.core.build.managed.ITool;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * 
- */
-public class ToolReference implements ITool {
-
-	private ITool parent;
-	private IConfiguration owner;
-	private List optionReferences;
-	private Map optionRefMap;
-	
-	/**
-	 * Created a tool reference on the fly based on an existing tool.
-	 * 
-	 * @param owner The <code>Configuration</code> the receiver will be added to.
-	 * @param parent The <code>ITool</code>tool the reference will be based on.
-	 */
-	public ToolReference(Configuration owner, ITool parent) {
-		this.owner = owner;
-		this.parent = parent;
-		
-		owner.addToolReference(this);
-	}
-	
-	/**
-	 * Created tool reference from an extension defined in a plugin manifest.
-	 * 
-	 * @param owner The <code>Configuration</code> the receiver will be added to.
-	 * @param element The element containing build information for the reference.
-	 */
-	public ToolReference(Configuration owner, IConfigurationElement element) {
-		this.owner = owner;
-		
-		parent = ((Target)owner.getTarget()).getTool(element.getAttribute("id"));
-
-		owner.addToolReference(this);
-		
-		IConfigurationElement[] toolElements = element.getChildren();
-		for (int m = 0; m < toolElements.length; ++m) {
-			IConfigurationElement toolElement = toolElements[m];
-			if (toolElement.getName().equals(ITool.OPTION_REF)) {
-				new OptionReference(this, toolElement);
-			}
-		}
-	}
-
-	/**
-	 * Create a new tool reference based on information contained in a project file.
-	 * 
-	 * @param owner The <code>Configuration</code> the receiver will be added to.
-	 * @param element The element defined in the project file containing build information
-	 * for the receiver.
-	 */
-	public ToolReference(Configuration owner, Element element) {
-		this.owner = owner;
-		
-		Target parentTarget = (Target)owner.getTarget();
-		parent = ((Target)parentTarget.getParent()).getTool(element.getAttribute("id"));
-
-		owner.addToolReference(this);
-	
-		NodeList configElements = element.getChildNodes();
-		for (int i = 0; i < configElements.getLength(); ++i) {
-			Node configElement = configElements.item(i);
-			if (configElement.getNodeName().equals(ITool.OPTION_REF)) {
-				new OptionReference(this, (Element)configElement);
-			}
-		}
-	}
-
-	/**
-	 * Persist receiver to project file.
-	 * 
-	 * @param doc The persistent store for the reference information.
-	 * @param element The root element in the store the receiver must use 
-	 * to persist settings.
-	 */
-	public void serialize(Document doc, Element element) {
-		element.setAttribute(ITool.ID, parent.getId());
-		
-		if (optionReferences != null)
-			for (int i = 0; i < optionReferences.size(); ++i) {
-				OptionReference optionRef = (OptionReference)optionReferences.get(i);
-				Element optionRefElement = doc.createElement(ITool.OPTION_REF);
-				element.appendChild(optionRefElement);
-				optionRef.serialize(doc, optionRefElement);
-			}
-	}
-
-	public IConfiguration getConfiguration() {
-		return owner;
-	}
-	
-	public ITool getTool() {
-		return parent;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getToolCommand()
-	 */
-	public String getToolCommand() {
-		return parent.getToolCommand();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getToolFlags()
-	 */
-	public String getToolFlags() throws BuildException {
-		// Get all of the options
-		StringBuffer buf = new StringBuffer();
-		IOption[] opts = getOptions();
-		for (int index = 0; index < opts.length; index++) {
-			IOption option = opts[index];
-			switch (option.getValueType()) {
-				case IOption.BOOLEAN :
-					if (option.getBooleanValue()) {
-						buf.append(option.getCommand() + WHITE_SPACE);
-					}
-					break;
-				
-				case IOption.ENUMERATED :
-					String enum = option.getEnumCommand(option.getSelectedEnum());
-					if (enum.length() > 0) {
-						buf.append(enum + WHITE_SPACE);
-					}
-					break;
-				
-				case IOption.STRING :
-					String val = option.getStringValue();
-					if (val.length() > 0) { 
-						buf.append(val + WHITE_SPACE);
-					}
-					break;
-					
-				case IOption.STRING_LIST :
-					String cmd = option.getCommand();
-					String[] list = option.getStringListValue();
-					for (int j = 0; j < list.length; j++) {
-						String temp = list[j];
-						buf.append(cmd + temp + WHITE_SPACE);
-					}
-					break;
-					
-				case IOption.INCLUDE_PATH :
-					String incCmd = option.getCommand();
-					String[] paths = option.getIncludePaths();
-					for (int j = 0; j < paths.length; j++) {
-						String temp = paths[j];
-						buf.append(incCmd + temp + WHITE_SPACE);
-					}
-					break;
-
-				case IOption.PREPROCESSOR_SYMBOLS :
-					String defCmd = option.getCommand();
-					String[] symbols = option.getDefinedSymbols();
-					for (int j = 0; j < symbols.length; j++) {
-						String temp = symbols[j];
-						buf.append(defCmd + temp + WHITE_SPACE);
-					}
-					break;
-
-				default :
-					break;
-			}
-
-		}
-
-		return buf.toString().trim();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#createOption()
-	 */
-	public IOption createOption() {
-		
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getOptions()
-	 */
-	public IOption[] getOptions() {
-		IOption[] options = parent.getOptions();
-		
-		// Replace with our references
-		for (int i = 0; i < options.length; ++i) {
-			OptionReference ref = getOptionReference(options[i]);
-			if (ref != null)
-				options[i] = ref;
-		}
-			
-		return options;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getOutputFlag()
-	 */
-	public String getOutputFlag() {
-		return parent.getOutputFlag();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getOutputPrefix()
-	 */
-	public String getOutputPrefix() {
-		return parent.getOutputPrefix();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getTarget()
-	 */
-	public ITarget getTarget() {
-		return owner.getTarget();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getTopOptionCategory()
-	 */
-	public IOptionCategory getTopOptionCategory() {
-		return parent.getTopOptionCategory();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#producesFileType(java.lang.String)
-	 */
-	public boolean producesFileType(String outputExtension) {
-		return parent.producesFileType(outputExtension);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IBuildObject#getId()
-	 */
-	public String getId() {
-		return parent.getId();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IBuildObject#getName()
-	 */
-	public String getName() {
-		return parent.getName();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IBuildObject#setId(java.lang.String)
-	 */
-	public void setId(String id) {
-		// Not allowed
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.IBuildObject#setName(java.lang.String)
-	 */
-	public void setName(String name) {
-		// Not allowed
-	}
-
-	public boolean references(ITool target) {
-		if (equals(target))
-			// we are the target
-			return true;
-		else if (parent instanceof ToolReference)
-			// check the reference we are overriding
-			return ((ToolReference)parent).references(target);
-		else
-			// the real reference
-			return parent.equals(target);
-	}
-	
-	private OptionReference getOptionReference(IOption option) {
-		if (optionReferences != null)
-			for (int i = 0; i < optionReferences.size(); ++i) {
-				OptionReference optionRef = (OptionReference)optionReferences.get(i);
-				if (optionRef.references(option))
-					return optionRef;
-			}
-		return null;
-	}
-	
-	public OptionReference createOptionReference(IOption option) {
-		return new OptionReference(this, option);
-	}
-	
-	public void addOptionReference(OptionReference optionRef) {
-		if (optionReferences == null)
-			optionReferences = new ArrayList();
-		optionReferences.add(optionRef);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#handlesFileType(java.lang.String)
-	 */
-	public boolean buildsFileType(String extension) {
-		return parent.buildsFileType(extension);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getOption(java.lang.String)
-	 */
-	public IOption getOption(String id) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.build.managed.ITool#getOutput(java.lang.String)
-	 */
-	public String getOutputExtension(String inputExtension) {
-		return parent.getOutputExtension(inputExtension);
-	}
-
-}
Index: schema/ManagedBuildTools.exsd
===================================================================
RCS file: schema/ManagedBuildTools.exsd
diff -N schema/ManagedBuildTools.exsd
--- schema/ManagedBuildTools.exsd	20 Aug 2003 17:52:32 -0000	1.12
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,536 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.cdt.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.cdt.core" id="ManagedBuildTools" name="Managed Build Tools"/>
-      </appInfo>
-      <documentation>
-         The managed build information model describes targets, configurations, and toolchains for the build system.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="target"/>
-            <element ref="tool"/>
-            <element ref="configuration"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="tool">
-      <annotation>
-         <documentation>
-            Defines a tool used in the build process.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="option"/>
-            <element ref="optionCategory"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A unique identifier for the tool that will be used by the build model.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Human-readable name for the tool to be used in the UI.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="sources" type="string">
-            <annotation>
-               <documentation>
-                  A comma-separated list of file extensions that the tool will produce output for.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="outputs" type="string">
-            <annotation>
-               <documentation>
-                  The extension that the tool will produce from a given input.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="command" type="string">
-            <annotation>
-               <documentation>
-                  The command that invokes the tool. For example, gcc for the Gnu C compiler, or g++ for the Gnu C++ compiler.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="outputFlag" type="string">
-            <annotation>
-               <documentation>
-                  An optional flag for tools that allow users to specify a name for the artifact of the tool. For example, the GCC compiler and linker tools typically allow the user to specify the name of the output with the &apos;-o&apos; flag, whereas the archiver that creates libraries does not.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="outputPrefix" type="string">
-            <annotation>
-               <documentation>
-                  Some tools produce files with a special prefix that must be specified. For example, a librarian on POSIX systems expects the output to be lib&lt;target&gt;.a so &apos;lib&apos; would be the prefix.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="dependencyCalculator" type="string">
-            <annotation>
-               <documentation>
-                  This is an optional field that specifies the class that provides the dependency calculation for a given tool.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.cdt.internal.core.sourcedependency.ISourceDependency"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="option">
-      <annotation>
-         <documentation>
-            An option is associated with a tool. Options can contain boolean values, a simple text string, a selection from an enumerated list, or a list of values. Options also map the value they contain to a command-line flag, such as &apos;-g&apos; in the case of debugging symbol information for compilers.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="enumeratedOptionValue"/>
-            <element ref="listOptionValue"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A unique identifier for the option.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A descriptive name for the option.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="valueType" use="default" value="string">
-            <annotation>
-               <documentation>
-                  General options can be one of the following types; &apos;string&apos; for catch-all entries for options that cannot be easily defined any other way, &apos;string list&apos; for entries that consist of a list of values such as defined symbols or paths, &apos;boolean&apos; for options that have two values, and &apos;enumerated&apos; for options that are one-of a list of values.
-
-Two additional types exist to flag options of special relevance to the build model; &apos;include&apos;, and &apos;definedSymbols&apos;. You can pre-populate with optionValues, and they will display in the UI the same way the &apos;StringList&apos; options do. The build model will look specifically for these value types when clients query for include paths and preprocessor defines.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="string">
-                  </enumeration>
-                  <enumeration value="stringList">
-                  </enumeration>
-                  <enumeration value="boolean">
-                  </enumeration>
-                  <enumeration value="enumerated">
-                  </enumeration>
-                  <enumeration value="includePath">
-                  </enumeration>
-                  <enumeration value="definedSymbols">
-                  </enumeration>
-                  <enumeration value="libs">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="category" type="string">
-            <annotation>
-               <documentation>
-                  This is the id of the option category for this option.  The id can be the id of the tool which is also a category.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="defaultValue" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the default value for the option if the &apos;value&apos; field is blank. For enumerated options the optionEnums will be searched for the default. For string list options, all defined optionValues will be treated as defaults. For boolean values, specify truth using the string &apos;true&apos;. All other strings will be treated as false.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="command" type="string">
-            <annotation>
-               <documentation>
-                  An optional value that specifies the actual command that will be passed to the tool on the command line.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="enumeratedOptionValue">
-      <annotation>
-         <documentation>
-            Defines a single value of an enumerated option.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Unique identifier for the option enumeration.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A descriptive name for the enumeration.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="isDefault" type="boolean">
-            <annotation>
-               <documentation>
-                  Flags this enumerated value as the default to apply to the option if the user has not changed the setting.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="command" type="string">
-            <annotation>
-               <documentation>
-                  The command that the enumerated value translates to on the command line.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="configuration">
-      <annotation>
-         <documentation>
-            A configuration is used to gather together certain default tools and options to build  target a certain way. For example, a &quot;Debug&quot; configuration might supply tools with the options set to build with debugging symbols, whereas a &quot;Release&quot; configuration would supply tools with options set to create the best performance.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="toolReference"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Unique identifier for the configuration.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A descriptive name for the configuration to be used in the UI.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="toolReference">
-      <annotation>
-         <documentation>
-            This is reserved for future use. It currently gets instantiated for saving tool settings.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="optionReference"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="optionReference">
-      <annotation>
-         <documentation>
-            Option references hold onto information the user has changed through the UI. Not all fields will be populated, depending on the option type the reference overrides. For example, the &apos;name&apos; field is used by enumerated options only.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The ID of the option the reference is for.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="defaultValue" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="command" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="target">
-      <annotation>
-         <documentation>
-            Represents a type of resource that is the target of the build process, for example, a Linux Library.  A target contains a sequence of tool definitions and configurations.  Targets are arranged in an inheritance hierarchy where a target inherits the list of tools from it&apos;s parent and can add to or override tools in this list.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="tool"/>
-            <element ref="configuration"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Used by the build model to uniquely identify the target.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A human-readable target name, such as &apos;Linux Executable&apos;. This will be the name the user sees displayed in the UI.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="isAbstract" type="boolean" use="default" value="false">
-            <annotation>
-               <documentation>
-                  This is a UI property.  If set to true, users should not be able to create project configurations targeted at this target.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="parent" type="string">
-            <annotation>
-               <documentation>
-                  The id of a target that this tool inherits from.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="artifactName" type="string">
-            <annotation>
-               <documentation>
-                  This is the name of the final build artifact associated with the target. The user will specify this is the UI, so there is no need to supply a default value.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="defaultExtension" type="string">
-            <annotation>
-               <documentation>
-                  This is the extensionthat will be applied to any build artifact created by the target.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="isTest" type="boolean">
-            <annotation>
-               <documentation>
-                  A an optional field that flags a target as a test-only target. If true, the target will not appear in the UI.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="cleanCommand" type="string">
-            <annotation>
-               <documentation>
-                  This attribute maintains the command that removes files for a particular target. For example, on POSIX targets like Linuc, Solaris, or Cygwin, the command would be &lt;code&gt;rm -rf&lt;/code&gt; whereas on Win32 platforms it would be &lt;code&gt;del /F /S /Q&lt;/code&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="makeCommand" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="makeFlags" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="optionCategory">
-      <annotation>
-         <documentation>
-            An optional, but useful, mechanism for grouping options together.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  Used by the build model to uniquely identify the option category.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  A human-readable category name, such as &apos;Preprocessor Options&apos;. This will be the name the user sees displayed in the UI.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="owner" type="string">
-            <annotation>
-               <documentation>
-                  Option categories can be nested inside other option categories. This is the ID of the owner of the category.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="listOptionValue">
-      <annotation>
-         <documentation>
-            A value for defining individual elements of a list option.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The contents of the list item.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="builtIn" type="boolean">
-            <annotation>
-               <documentation>
-                  This attribute flags the list value as a built-in value as opposed to something the user has entered. Built-ins will not be passed to clients that generate command lines (like the makefile generator). However, clients that need to take these settings into account (like the indexing service), will receive these settings. These values will appear grey in the UI.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         1.2
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of the extension point usage:
-&lt;p&gt;
-&lt;pre&gt;
-   &lt;extension
-         id=&quot;buildExample&quot;
-         name=&quot;Tools for Build Example&quot;
-         point=&quot;org.eclipse.cdt.core.ManagedBuildInfo&quot;&gt;
-      &lt;target
-            makeFlags=&quot;-k&quot;
-            isTest=&quot;false&quot;
-            cleanCommand=&quot;rm -rf&quot;
-            name=&quot;Executable&quot;
-            defaultExtension=&quot;.exe&quot;
-            isAbstract=&quot;false&quot;
-            makeCommand=&quot;make&quot;
-            id=&quot;example.target.executable&quot;&gt;
-         &lt;tool
-               sources=&quot;C&quot;
-               name=&quot;Compiler&quot;
-               outputFlag=&quot;-o&quot;
-               outputs=&quot;exe&quot;
-               command=&quot;g++&quot;
-               id=&quot;executable.compiler&quot;&gt;
-            &lt;optionCategory
-                  owner=&quot;executable.compiler&quot;
-                  name=&quot;Flags&quot;
-                  id=&quot;compiler.category.flags&quot;&gt;
-            &lt;/optionCategory&gt;
-            &lt;option
-                  defaultValue=&quot;-c&quot;
-                  name=&quot;Compiler Flags&quot;
-                  category=&quot;compiler.category.flags&quot;
-                  valueType=&quot;string&quot;
-                  id=&quot;category.flags.comp_flags&quot;&gt;
-            &lt;/option&gt;
-         &lt;/tool&gt;
-         &lt;configuration
-               name=&quot;Default&quot;
-               id=&quot;example.config.default&quot;&gt;
-         &lt;/configuration&gt;
-      &lt;/target&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         An implementation of this extension point is supplied in &lt;samp&gt;org.eclipse.cdt.ui&lt;/samp&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2003 IBM Corporation and others.
-All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available on the &lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt; Eclipse&lt;/a&gt; website.
-      </documentation>
-   </annotation>
-
-</schema>
Index: src/org/eclipse/cdt/core/ManagedCProjectNature.java
===================================================================
RCS file: src/org/eclipse/cdt/core/ManagedCProjectNature.java
diff -N src/org/eclipse/cdt/core/ManagedCProjectNature.java
--- src/org/eclipse/cdt/core/ManagedCProjectNature.java	25 Jul 2003 14:40:04 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,182 +0,0 @@
-package org.eclipse.cdt.core;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
-***********************************************************************/
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IProjectNature;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Plugin;
-
-public class ManagedCProjectNature implements IProjectNature {
-	public static final String BUILDER_NAME= "genmakebuilder";
-	public static final String BUILDER_ID= CCorePlugin.PLUGIN_ID + "." + BUILDER_NAME;
-	private static final String MNG_NATURE_ID = CCorePlugin.PLUGIN_ID + ".managedBuildNature"; 
-	private IProject project;
-
-	/**
-	 * Utility method for adding a managed nature to a project.
-	 * 
-	 * @param proj the project to add the managed nature to.
-	 * @param monitor a progress monitor to indicate the duration of the operation, or
-	 * <code>null</code> if progress reporting is not required.
-	 */
-	public static void addManagedNature(IProject project, IProgressMonitor monitor) throws CoreException {
-		addNature(project, MNG_NATURE_ID, monitor);
-	}
-
-	public static void addManagedBuilder(IProject project, IProgressMonitor monitor) throws CoreException {
-		// Add the builder to the project
-		IProjectDescription description = project.getDescription();
-		ICommand[] commands = description.getBuildSpec();
-
-		// TODO Remove this when the new StandardBuild nature adds the cbuilder
-		for (int i = 0; i < commands.length; i++) {
-			ICommand command = commands[i];
-			if (command.getBuilderName().equals("org.eclipse.cdt.core.cbuilder")) {
-				// Remove the command
-				Vector vec = new Vector(Arrays.asList(commands));
-				vec.removeElementAt(i);
-				vec.trimToSize();
-				ICommand[] tempCommands = (ICommand[]) vec.toArray(new ICommand[commands.length-1]); 
-				description.setBuildSpec(tempCommands);
-				break;
-			}
-		}
-		
-		commands = description.getBuildSpec();
-		boolean found = false;
-		// See if the builder is already there
-		for (int i = 0; i < commands.length; ++i) {
-		   if (commands[i].getBuilderName().equals(getBuilderID())) {
-			  found = true;
-			  break;
-		   }
-		}
-		if (!found) { 
-		   //add builder to project
-		   ICommand command = description.newCommand();
-		   command.setBuilderName(getBuilderID());
-		   ICommand[] newCommands = new ICommand[commands.length + 1];
-		   // Add it before other builders.
-		   System.arraycopy(commands, 0, newCommands, 1, commands.length);
-		   newCommands[0] = command;
-		   description.setBuildSpec(newCommands);
-		   project.setDescription(description, null);
-		}		
-	}
-
-	/**
-	 * Utility method for adding a nature to a project.
-	 * 
-	 * @param proj the project to add the nature to.
-	 * @param natureId the id of the nature to assign to the project
-	 * @param monitor a progress monitor to indicate the duration of the operation, or
-	 * <code>null</code> if progress reporting is not required.
-	 */
-	public static void addNature(IProject project, String natureId, IProgressMonitor monitor) throws CoreException {
-		IProjectDescription description = project.getDescription();
-		String[] prevNatures = description.getNatureIds();
-		for (int i = 0; i < prevNatures.length; i++) {
-			if (natureId.equals(prevNatures[i]))
-				return;
-		}
-		String[] newNatures = new String[prevNatures.length + 1];
-		System.arraycopy(prevNatures, 0, newNatures, 0, prevNatures.length);
-		newNatures[prevNatures.length] = natureId;
-		description.setNatureIds(newNatures);
-		project.setDescription(description, monitor);
-	}
-
-	/**
-	 * Get the correct builderID
-	 */
-	public static String getBuilderID() {
-		Plugin plugin = (Plugin)CCorePlugin.getDefault();
-		IPluginDescriptor descriptor = plugin.getDescriptor();
-		if (descriptor.getExtension(BUILDER_NAME) != null) {
-			return descriptor.getUniqueIdentifier() + "." + BUILDER_NAME;
-		}
-		return BUILDER_ID;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.resources.IProjectNature#configure()
-	 */
-	public void configure() throws CoreException {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.resources.IProjectNature#deconfigure()
-	 */
-	public void deconfigure() throws CoreException {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.resources.IProjectNature#getProject()
-	 */
-	public IProject getProject() {
-		// Just return the project associated with the nature
-		return project;
-	}
-
-
-	/**
-	 * Utility method to remove the managed nature from a project.
-	 * 
-	 * @param project to remove the managed nature from
-	 * @param mon progress monitor to indicate the duration of the operation, or 
-	 * <code>null</code> if progress reporting is not required. 
-	 * @throws CoreException
-	 */
-	public static void removeManagedNature(IProject project, IProgressMonitor mon) throws CoreException {
-		removeNature(project, MNG_NATURE_ID, mon);
-	}
-
-	/**
-	 * Utility method for removing a project nature from a project.
-	 * 
-	 * @param proj the project to remove the nature from
-	 * @param natureId the nature id to remove
-	 * @param monitor a progress monitor to indicate the duration of the operation, or
-	 * <code>null</code> if progress reporting is not required.
-	 */
-	public static void removeNature(IProject project, String natureId, IProgressMonitor monitor) throws CoreException {
-		IProjectDescription description = project.getDescription();
-		String[] prevNatures = description.getNatureIds();
-		List newNatures = new ArrayList(Arrays.asList(prevNatures));
-		newNatures.remove(natureId);
-		description.setNatureIds((String[])newNatures.toArray(new String[newNatures.size()]));
-		project.setDescription(description, monitor);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.resources.IProjectNature#setProject(org.eclipse.core.resources.IProject)
-	 */
-	public void setProject(IProject project) {
-		// Set the project for the nature
-		this.project = project;
-	}
-
-}
Index: src/org/eclipse/cdt/internal/core/CCorePluginResources.properties
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCorePluginResources.properties,v
retrieving revision 1.4
diff -u -r1.4 CCorePluginResources.properties
--- src/org/eclipse/cdt/internal/core/CCorePluginResources.properties	18 Aug 2003 17:34:23 -0000	1.4
+++ src/org/eclipse/cdt/internal/core/CCorePluginResources.properties	15 Sep 2003 19:00:09 -0000
@@ -5,17 +5,3 @@
 #
 ################################################
 CBuilder.build_error= Build Error	
-
-# Generated makefile builder messages
-MakeBuilder.message.starting = Starting the build for project {0}
-MakeBuilder.message.rebuild = Regenerating makefiles for project {0}
-MakeBuilder.message.incremental = Updating makefiles for project {0}
-MakeBuilder.message.make = Calling {0} for project {1}
-MakeBuilder.message.error = Build error
-MakeBuilder.message.finished = Build complete for project {0}
-MakeBuilder.comment.module.list = # Every subdirectory with source files must be described here
-MakeBuilder.comment.source.list = # Each subdirectory must contribute its source files here
-MakeBuilder.comment.build.rule = # Each subdirectory must supply rules for building sources it contributes
-MakeBuilder.comment.module.make.includes = # Include the makefiles for each source subdirectory
-MakeBuilder.comment.module.dep.includes = # Include automatically-generated dependency list:
-MakeBuilder.comment.autodeps = # Automatically-generated dependency list:
Index: src/org/eclipse/cdt/internal/core/GeneratedMakefileBuilder.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/core/GeneratedMakefileBuilder.java
diff -N src/org/eclipse/cdt/internal/core/GeneratedMakefileBuilder.java
--- src/org/eclipse/cdt/internal/core/GeneratedMakefileBuilder.java	11 Sep 2003 14:46:14 -0000	1.6
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,415 +0,0 @@
-package org.eclipse.cdt.internal.core;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
- * **********************************************************************/
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.CommandLauncher;
-import org.eclipse.cdt.core.ConsoleOutputStream;
-import org.eclipse.cdt.core.ErrorParserManager;
-import org.eclipse.cdt.core.build.managed.IManagedBuildInfo;
-import org.eclipse.cdt.core.build.managed.ManagedBuildManager;
-import org.eclipse.cdt.core.model.ICModelMarker;
-import org.eclipse.cdt.core.resources.ACBuilder;
-import org.eclipse.cdt.core.resources.IConsole;
-import org.eclipse.cdt.core.resources.MakeUtil;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.SubProgressMonitor;
-
-public class GeneratedMakefileBuilder extends ACBuilder {
-	// String constants
-	private static final String MESSAGE = "MakeBuilder.message";	//$NON-NLS-1$
-	private static final String BUILD_ERROR = MESSAGE + ".error";	//$NON-NLS-1$
-	private static final String BUILD_FINISHED = MESSAGE + ".finished";	//$NON-NLS-1$
-	private static final String INCREMENTAL = MESSAGE + ".incremental";	//$NON-NLS-1$
-	private static final String MAKE = MESSAGE + ".make";	//$NON-NLS-1$
-	private static final String REBUILD = MESSAGE + ".rebuild";	//$NON-NLS-1$
-	private static final String START = MESSAGE + ".starting";	//$NON-NLS-1$
-
-	// Status codes
-	public static final int EMPTY_PROJECT_BUILD_ERROR = 1;
-
-	// Local variables
-	protected List resourcesToBuild;
-	protected List ruleList;
-
-	
-	public class ResourceDeltaVisitor implements IResourceDeltaVisitor {
-		private boolean buildNeeded = false;
-
-		public boolean visit(IResourceDelta delta) throws CoreException {
-			IResource resource = delta.getResource();
-			// If the project has changed, then a build is needed and we can stop
-			if (resource != null && resource.getProject() == getProject()) {
-				buildNeeded = true;
-				return false;
-			}
-
-			return true;
-		}
-
-		public boolean shouldBuild() {
-			return buildNeeded;
-		}
-	}
-
-	/**
-	 * 
-	 */
-	public GeneratedMakefileBuilder() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.events.InternalBuilder#build(int, java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws CoreException {
-		String statusMsg = CCorePlugin.getFormattedString(START, getProject().getName());
-		if (statusMsg != null) {
-			monitor.subTask(statusMsg);
-		}
-
-		if (kind == IncrementalProjectBuilder.FULL_BUILD) {
-			fullBuild(monitor);
-		}
-		else {
-			// Create a delta visitor to make sure we should be rebuilding
-			ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
-			IResourceDelta delta = getDelta(getProject());
-			if (delta == null) {
-				fullBuild(monitor);
-			}
-			else {
-				delta.accept(visitor);
-				if (visitor.shouldBuild()) {
-					incrementalBuild(delta, monitor);
-				}
-			}
-		}
-		// Checking to see if the user cancelled the build
-		checkCancel(monitor);
-
-		// Ask build mechanism to compute deltas for project dependencies next time
-		return getProject().getReferencedProjects();
-	}
-
-	/**
-	 * Check whether the build has been canceled. Cancellation requests 
-	 * propagated to the caller by throwing <code>OperationCanceledException</code>.
-	 * 
-	 * @see org.eclipse.core.runtime.OperationCanceledException#OperationCanceledException()
-	 */
-	public void checkCancel(IProgressMonitor monitor) {
-		if (monitor != null && monitor.isCanceled()) {
-			throw new OperationCanceledException();
-		}
-	}
-
-	/**
-	 * @param monitor
-	 */
-	protected void fullBuild(IProgressMonitor monitor) throws CoreException {
-		// Always need one of these bad boys
-		if (monitor == null) {
-			monitor = new NullProgressMonitor();
-		}
-		
-		// We also need one of these ...
-		IProject currentProject = getProject();
-		if (currentProject == null) {
-			// Flag some sort of error and bail
-			return;
-		}
-
-		// Regenerate the makefiles for any managed projects this project depends on
-		IProject[] deps = currentProject.getReferencedProjects();
-		for (int i = 0; i < deps.length; i++) {
-			IProject depProject = deps[i];
-			if (ManagedBuildManager.manages(depProject)) {
-				IManagedBuildInfo depInfo = ManagedBuildManager.getBuildInfo(depProject);
-				MakefileGenerator generator = new MakefileGenerator(depProject, depInfo, monitor);
-				try {
-					generator.regenerateMakefiles();		
-				} catch (CoreException e) {
-					// This may be an empty project exception
-					if (e.getStatus().getCode() == GeneratedMakefileBuilder.EMPTY_PROJECT_BUILD_ERROR) {
-						// Just keep looking for other projects
-						continue;
-					}
-				}
-			}
-		}
-
-		// Need to report status to the user
-		String statusMsg = CCorePlugin.getFormattedString(REBUILD, currentProject.getName());
-		monitor.subTask(statusMsg);
-
-		// Regenerate the makefiles for this project
-		IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(getProject());
-		MakefileGenerator generator = new MakefileGenerator(currentProject, info, monitor);		
-		try {
-			generator.regenerateMakefiles();
-		} catch (CoreException e) {
-			// See if this is an empty project
-			if (e.getStatus().getCode() == GeneratedMakefileBuilder.EMPTY_PROJECT_BUILD_ERROR) {
-				monitor.worked(1);
-				return;
-			}
-		}
-		IPath topBuildDir = generator.getTopBuildDir();
-		
-		// Now call make
-		invokeMake(true, topBuildDir.removeFirstSegments(1), info, monitor);
-		
-		monitor.worked(1);		
-	}
-
-	/**
-	 * @param makefilePath
-	 * @param info
-	 * @return
-	 */
-	protected String[] getMakeTargets() {
-		List args = new ArrayList();
-		// Add each target
-		String sessionTarget = MakeUtil.getSessionTarget(getProject());
-		StringTokenizer tokens = new StringTokenizer(sessionTarget);
-		while (tokens.hasMoreTokens()) {
-			args.add(tokens.nextToken().trim());
-		}
-		if (args.isEmpty()) {
-			args.add("all");
-		}
-		return (String[])args.toArray(new String[args.size()]);
-	}
-	
-	/**
-	 * @return
-	 */
-	protected List getResourcesToBuild() {
-		if (resourcesToBuild == null) {
-			resourcesToBuild = new ArrayList();
-		}
-		return resourcesToBuild;
-	}
-
-	/**
-	 * @return
-	 */
-	protected List getRuleList() {
-		if (ruleList == null) {
-			ruleList = new ArrayList();
-		}
-		return ruleList;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.core.resources.ACBuilder#getWorkingDirectory()
-	 */
-	public IPath getWorkingDirectory() {
-		IProject currProject = getProject();
-		IPath workingDirectory = new Path(MakeUtil.getSessionBuildDir((IResource) currProject));
-		if (workingDirectory.isEmpty())
-			workingDirectory = currProject.getLocation();
-		return workingDirectory;
-	}
-
-	/**
-	 * @param delta
-	 * @param monitor
-	 */
-	protected void incrementalBuild(IResourceDelta delta, IProgressMonitor monitor) throws CoreException {
-		// Rebuild the resource tree in the delta
-		IProject currentProject = getProject();
-		String statusMsg = null;
-		
-		// Need to report status to the user
-		if (monitor == null) {
-			monitor = new NullProgressMonitor();
-		}
-		statusMsg = CCorePlugin.getFormattedString(INCREMENTAL, currentProject.getName());
-		monitor.subTask(statusMsg);
-		
-		// Ask the makefile generator to generate any makefiles needed to build delta
-		IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(getProject());
-		MakefileGenerator generator = new MakefileGenerator(currentProject, info, monitor);
-		try {
-			generator.generateMakefiles(delta);
-		} catch (CoreException e) {
-			if (e.getStatus().getCode() == GeneratedMakefileBuilder.EMPTY_PROJECT_BUILD_ERROR) {
-				// There is nothing to build so bail
-				monitor.worked(1);
-				return;		
-			} else {
-				throw e;
-			}
-		}	
-
-		// Run the build if there is any relevant change
-		if (generator.shouldRunBuild()) {
-			IPath buildDir = new Path(info.getConfigurationName());
-			invokeMake(false, buildDir, info, monitor);
-		}
-		
-		monitor.worked(1);		
-	}
-
-	protected void invokeMake(boolean fullBuild, IPath buildDir, IManagedBuildInfo info, IProgressMonitor monitor) {
-		boolean isCanceled = false;
-		IProject currentProject = getProject();
-		SubProgressMonitor subMonitor = null;
-		if (monitor == null) {
-			monitor = new NullProgressMonitor();
-		}
-
-		// Flag to the user that make is about to be called
-		IPath makeCommand = new Path(info.getMakeCommand()); 
-		String[] msgs = new String[2];
-		msgs[0] = info.getMakeCommand();
-		msgs[1] = currentProject.getName();
-		String statusMsg = CCorePlugin.getFormattedString(MAKE, msgs);
-		if (statusMsg != null) {
-			monitor.subTask(statusMsg);
-		}
-
-		// Get a build console for the project
-		IConsole console = null;
-		ConsoleOutputStream consoleOutStream = null;
-		IWorkspace workspace = null;
-		IMarker[] markers = null;
-		try {
-			console = CCorePlugin.getDefault().getConsole();
-			console.start(currentProject);
-			consoleOutStream = console.getOutputStream();
-
-			// Remove all markers for this project
-			workspace = currentProject.getWorkspace();
-			markers = currentProject.findMarkers(ICModelMarker.C_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE);
-			if (markers != null) {
-				workspace.deleteMarkers(markers);
-			}
-		} catch (CoreException e) {
-		}
-
-		IPath workingDirectory = getWorkingDirectory().append(buildDir);
-
-		// Get the arguments to be passed to make from build model
-		String[] makeTargets = getMakeTargets();
-		
-		// Get a launcher for the make command
-		String errMsg = null;
-		CommandLauncher launcher = new CommandLauncher();
-		launcher.showCommand(true);
-
-		// Set the environmennt, some scripts may need the CWD var to be set.
-		Properties props = launcher.getEnvironment();
-		props.put("CWD", workingDirectory.toOSString());
-		props.put("PWD", workingDirectory.toOSString());
-		String[] env = null;
-		ArrayList envList = new ArrayList();
-		Enumeration names = props.propertyNames();
-		if (names != null) {
-			while (names.hasMoreElements()) {
-				String key = (String) names.nextElement();
-				envList.add(key + "=" + props.getProperty(key));
-			}
-			env = (String[]) envList.toArray(new String[envList.size()]);
-		}
-		
-		// Hook up an error parser
-		ErrorParserManager epm = new ErrorParserManager(this);
-		epm.setOutputStream(consoleOutStream);
-		OutputStream stdout = epm.getOutputStream();
-		OutputStream stderr = epm.getOutputStream();
-		
-		// Launch make
-		Process proc = launcher.execute(makeCommand, makeTargets, env, workingDirectory);
-		if (proc != null) {
-			try {
-				// Close the input of the Process explicitely.
-				// We will never write to it.
-				proc.getOutputStream().close();
-			} catch (IOException e) {
-			}
-			subMonitor = new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN);
-			if (launcher.waitAndRead(stdout, stderr, subMonitor) != CommandLauncher.OK) {
-				errMsg = launcher.getErrorMessage();
-			
-				isCanceled = monitor.isCanceled();
-				monitor.setCanceled(false);
-				subMonitor = new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN);
-				subMonitor.subTask("Refresh From Local");
-
-				try {
-					currentProject.refreshLocal(IResource.DEPTH_INFINITE, subMonitor);
-				} catch (CoreException e) {
-				}
-
-				subMonitor = new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN);
-				subMonitor.subTask("Parsing");
-			} else {
-					errMsg = launcher.getErrorMessage();
-			}
-			
-			
-			// Report either the success or failure of our mission
-			StringBuffer buf = new StringBuffer();
-			if (errMsg != null && errMsg.length() > 0) {
-				String errorDesc = CCorePlugin.getResourceString(BUILD_ERROR);
-				buf.append(errorDesc);
-				buf.append(System.getProperty("line.separator", "\n"));
-				buf.append("(").append(errMsg).append(")");
-			}
-			else {
-				// Report a successful build
-				String successMsg = CCorePlugin.getFormattedString(BUILD_FINISHED, currentProject.getName());
-				buf.append(successMsg);
-				buf.append(System.getProperty("line.separator", "\n"));
-			}
-			// Write your message on the pavement
-			try {
-				consoleOutStream.write(buf.toString().getBytes());
-				consoleOutStream.flush();
-				stdout.close();
-				stderr.close();				
-			} catch (IOException e) {
-			}
-
-			epm.reportProblems();
-
-			subMonitor.done();
-			monitor.setCanceled(isCanceled);
-		}
-		monitor.done();
-	}
-
-}
Index: src/org/eclipse/cdt/internal/core/MakefileGenerator.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/core/MakefileGenerator.java
diff -N src/org/eclipse/cdt/internal/core/MakefileGenerator.java
--- src/org/eclipse/cdt/internal/core/MakefileGenerator.java	11 Sep 2003 14:46:14 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,835 +0,0 @@
-package org.eclipse.cdt.internal.core;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
- * **********************************************************************/
-
-import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.build.managed.IManagedBuildInfo;
-import org.eclipse.cdt.core.build.managed.ManagedBuildManager;
-import org.eclipse.cdt.core.search.ICSearchConstants;
-import org.eclipse.cdt.internal.core.model.Util;
-import org.eclipse.cdt.internal.core.sourcedependency.DependencyManager;
-import org.eclipse.cdt.internal.core.sourcedependency.DependencyQueryJob;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IResourceProxy;
-import org.eclipse.core.resources.IResourceProxyVisitor;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-
-public class MakefileGenerator {
-	// String constants for messages
-	private static final String MESSAGE = "MakeBuilder.message";	//$NON-NLS-1$
-	private static final String BUILD_ERROR = MESSAGE + ".error";	//$NON-NLS-1$
-	private static final String COMMENT = "MakeBuilder.comment";	//$NON-NLS-1$
-	private static final String MOD_LIST = COMMENT + ".module.list";	//$NON-NLS-1$	
-	private static final String SRC_LISTS = COMMENT + ".source.list";	//$NON-NLS-1$	
-	private static final String MOD_RULES = COMMENT + ".build.rule";	//$NON-NLS-1$	
-	private static final String MOD_INCL = COMMENT + ".module.make.includes";	//$NON-NLS-1$	
-	private static final String DEP_INCL = COMMENT + ".module.dep.includes";	//$NON-NLS-1$
-	private static final String AUTO_DEP = COMMENT + ".autodeps";	//$NON-NLS-1$
-
-	// String constants for makefile contents
-	protected static final String COLON = ":";
-	protected static final String DEPFILE_NAME = "module.dep";	//$NON-NLS-1$
-	protected static final String DOT = ".";
-	protected static final String MAKEFILE_NAME = "makefile";	//$NON-NLS-1$
-	protected static final String MODFILE_NAME = "module.mk";	//$NON-NLS-1$
-	protected static final String LINEBREAK = "\\";
-	protected static final String NEWLINE = System.getProperty("line.separator");
-	protected static final String SEMI_COLON = ";";
-	protected static final String SEPARATOR = "/";
-	protected static final String TAB = "\t";	
-	protected static final String WHITESPACE = " ";
-	protected static final String WILDCARD = "%";
-
-	// Local variables needed by generator
-	protected IManagedBuildInfo info;
-	protected List modifiedList;
-	protected IProgressMonitor monitor;
-	protected List subdirList;
-	protected IProject project;
-	protected List ruleList;
-	protected IPath topBuildDir;
-	protected boolean shouldRunBuild;
-	
-	/**
-	 * This class is used to recursively walk the project and determine which
-	 * modules contribute buildable source files. 
-	 */
-	protected class ResourceProxyVisitor implements IResourceProxyVisitor {
-		private MakefileGenerator generator;
-		private IManagedBuildInfo info;
-
-		/**
-		 * Constructs a new resource proxy visitor to quickly visit project
-		 * resources.
-		 */
-		public ResourceProxyVisitor(MakefileGenerator generator, IManagedBuildInfo info) {
-			this.generator = generator;
-			this.info = info;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.resources.IResourceProxyVisitor#visit(org.eclipse.core.resources.IResourceProxy)
-		 */
-		public boolean visit(IResourceProxy proxy) throws CoreException {
-			// No point in proceeding, is there 
-			if (generator == null) {
-				return false;
-			}
-			
-			// Is this a resource we should even consider
-			if (proxy.getType() == IResource.FILE) {
-				// Check extension to see if build model should build this file
-				IResource resource = proxy.requestResource();
-				String ext = resource.getFileExtension();
-				if (info.buildsFileType(ext)) {
-					if (!generator.isGeneratedResource(resource)) {
-						generator.appendBuildSubdirectory(resource);
-					}
-				}
-				return false;
-			}
-
-			// Recurse into subdirectories
-			return true;
-		}
-
-	}
-
-	public class ResourceDeltaVisitor implements IResourceDeltaVisitor {
-		private MakefileGenerator generator;
-		private IManagedBuildInfo info;
-
-		/**
-		 * 
-		 */
-		public ResourceDeltaVisitor(MakefileGenerator generator, IManagedBuildInfo info) {
-			this.generator = generator;
-			this.info = info;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.resources.IResourceDeltaVisitor#visit(org.eclipse.core.resources.IResourceDelta)
-		 */
-		public boolean visit(IResourceDelta delta) throws CoreException {
-			// Should the visitor keep iterating in current directory 
-			boolean keepLooking = false;
-			IResource resource = delta.getResource();
-			
-			// What kind of resource change has occurred
-			if (resource.getType() == IResource.FILE) {
-				String ext = resource.getFileExtension();
-				switch (delta.getKind()) {
-					case IResourceDelta.ADDED:
-					case IResourceDelta.REMOVED:
-						// Add the container of the resource and any resources that depend on it
-						if (info.buildsFileType(ext)) {
-							if (!generator.isGeneratedResource(resource)) {
-								// Here's the container
-								generator.appendModifiedSubdirectory(resource);
-								// and all the dependents
-								DependencyManager depMgr = CCorePlugin.getDefault().getCoreModel().getDependencyManager();
-								List deps = depMgr.getProjectDependsForFile(resource.getLocation().toOSString());
-								if (deps != null) {
-									ListIterator iter = deps.listIterator();
-									while (iter.hasNext()) {
-										generator.appendModifiedSubdirectory(resource);
-									}
-								}
-								// A build should run						
-								generator.shouldRunBuild(true);
-							}
-						}
-						break;
-					case IResourceDelta.CHANGED:
-						if (info.buildsFileType(ext)) {
-							switch (delta.getFlags()) {
-								case IResourceDelta.CONTENT:
-									// If the contents changed then just do a build
-									generator.shouldRunBuild(true);
-									keepLooking = true;
-								default:
-									keepLooking = true;
-							}							
-						}
-						break;
-					default:
-						keepLooking = true;
-						break;
-				}
-			} else {
-				// If the resource is part of the generated directory structure don't recurse
-				if (!generator.isGeneratedResource(resource)) {
-					keepLooking = true;
-				}
-			}
-			return keepLooking;
-		}
-	}	
-
-	public MakefileGenerator(IProject project, IManagedBuildInfo info, IProgressMonitor monitor) {
-		super();
-		// Save the project so we can get path and member information
-		this.project = project;
-		// Save the monitor reference for reporting back to the user
-		this.monitor = monitor;
-		// Get the build info for the project
-		this.info = info;
-		// By default a build never runs
-		shouldRunBuild = false;
-	}
-
-	/* (non-javadoc)
-	 * 
-	 * @param module
-	 * @return
-	 */
-	protected StringBuffer addDeps(IContainer module) throws CoreException {
-		// Calculate the new directory relative to the build output
-		IPath moduleRelativePath = module.getProjectRelativePath();
-		String relativePath = moduleRelativePath.toString();
-		relativePath += relativePath.length() == 0 ? "" : SEPARATOR; 
-
-		// Create the buffer to hold the output for the module and a dep calculator
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(CCorePlugin.getResourceString(AUTO_DEP) + NEWLINE);
-		DependencyManager dependencyManager = CCorePlugin.getDefault().getCoreModel().getDependencyManager();
-
-		/*
-		 * Visit each resource in the folder that we have a rule to build.
-		 * The dependency output for each resource will be in the format
-		 * <relativePath>/<resourceName>.<outputExtension> : <dep1> ... <depn>
-		 * with long lines broken.
-		 */
-		IResource[] resources = module.members();
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			if (resource.getType() == IResource.FILE) {
-				String inputExt = resource.getFileExtension();
-				if (info.buildsFileType(inputExt)) {
-					// Get the filename without an extension
-					String fileName = resource.getFullPath().removeFileExtension().lastSegment();
-					if (fileName == null) continue;
-					String outputExt = info.getOutputExtension(inputExt);
-					if (outputExt != null) {
-						fileName += DOT + outputExt;
-					}
-					// ASk the dep generator to find all the deps for this resource
-					ArrayList dependencies = new ArrayList();
-					try {
-						dependencyManager.performConcurrentJob(new DependencyQueryJob(project, (IFile)resource, dependencyManager, dependencies), ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, null);
-					} catch (Exception e) {
-						continue;
-					}
-					if (dependencies.size() == 0) continue;
-					buffer.append(relativePath + fileName + COLON + WHITESPACE);
-					Iterator iter = dependencies.listIterator();
-					while (iter.hasNext()) {
-						buffer.append(LINEBREAK + NEWLINE);
-						String path = (String)iter.next();
-						buffer.append(path + WHITESPACE);
-					}
-					buffer.append(NEWLINE);
-				}
-			}
-		}		
-		return buffer;
-	}
-
-	/* (non-javadoc)
-	 * @param buffer
-	 * @param info
-	 */
-	protected StringBuffer addMacros() {
-		StringBuffer buffer = new StringBuffer();
-		
-		// Add the ROOT macro
-		buffer.append("ROOT := .." + NEWLINE);
-		
-		// Get the clean command from the build model
-		buffer.append("RM := ");
-		buffer.append(info.getCleanCommand() + NEWLINE + NEWLINE);
-		
-		buffer.append(CCorePlugin.getResourceString(SRC_LISTS) + NEWLINE);
-		buffer.append("C_SRCS := " + NEWLINE);
-		buffer.append("CC_SRCS := " + NEWLINE + NEWLINE);
-		
-		// Add the libraries this project depends on
-		buffer.append("LIBS := ");
-		buffer.append(NEWLINE + NEWLINE);
-		return buffer;
-	}
-
-	/* (non-javadoc)
-	 * @return
-	 */
-	protected StringBuffer addModules() {
-		StringBuffer buffer = new StringBuffer();
-		// Add the comment
-		buffer.append(CCorePlugin.getResourceString(MOD_LIST) + NEWLINE);
-		buffer.append("MODULES := " + LINEBREAK + NEWLINE);
-		
-		// Get all the module names
-		ListIterator iter = getSubdirList().listIterator();
-		while (iter.hasNext()) {
-			IContainer container = (IContainer) iter.next();
-			// Check the special case where the module is the project root
-			if (container.getFullPath() == project.getFullPath()) {
-				buffer.append("." +  WHITESPACE + LINEBREAK + NEWLINE);
-			} else {
-				IPath path = container.getProjectRelativePath();
-				buffer.append(path.toString() +  WHITESPACE + LINEBREAK + NEWLINE);
-			}
-		}
-
-		// Now add the makefile instruction to include all the subdirectory makefile fragments
-		buffer.append(NEWLINE);
-		buffer.append(CCorePlugin.getResourceString(MOD_INCL) + NEWLINE);
-		buffer.append("include ${patsubst %, %/module.mk, $(MODULES)}" + NEWLINE);
-
-		buffer.append(NEWLINE + NEWLINE);
-		return buffer;
-	}
-
-
-	/* (non-javadoc)
-	 * Answers a <code>StringBuffer</code> containing all of the sources contributed by
-	 * a container to the build.
-	 * @param module
-	 * @return
-	 */
-	protected StringBuffer addSources(IContainer module) throws CoreException {
-		// Calculate the new directory relative to the build output
-		IPath moduleRelativePath = module.getProjectRelativePath();
-		String relativePath = moduleRelativePath.toString();
-		relativePath += relativePath.length() == 0 ? "" : SEPARATOR; 
-		
-		// String buffers
-		StringBuffer buffer = new StringBuffer();
-		StringBuffer cBuffer = new StringBuffer("C_SRCS += " + LINEBREAK + NEWLINE);
-		cBuffer.append("${addprefix $(ROOT)/" + relativePath + "," + LINEBREAK + NEWLINE);
-		StringBuffer ccBuffer = new StringBuffer("CC_SRCS += \\" + NEWLINE);
-		ccBuffer.append("${addprefix $(ROOT)/" + relativePath + "," + LINEBREAK + NEWLINE);
-		StringBuffer ruleBuffer = new StringBuffer(CCorePlugin.getResourceString(MOD_RULES) + NEWLINE);
-
-		// Put the comment in		
-		buffer.append(CCorePlugin.getResourceString(SRC_LISTS) + NEWLINE);
-
-		// Visit the resources in this folder
-		IResource[] resources = module.members();
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			if (resource.getType() == IResource.FILE) {
-				String ext = resource.getFileExtension();
-				if (info.buildsFileType(ext)) {
-					// TODO use build model to determine what list the file goes in
-					ccBuffer.append(resource.getName() + WHITESPACE + LINEBREAK + NEWLINE);
-					// Try to add the rule for the file
-					addRule(relativePath, ruleBuffer, resource);
-				}
-			}
-		}
-
-		// Finish the commands in the buffers
-		cBuffer.append("}" + NEWLINE + NEWLINE);
-		ccBuffer.append("}" + NEWLINE + NEWLINE);
-
-		// Append them all together
-		buffer.append(cBuffer).append(ccBuffer).append(ruleBuffer);
-		return buffer;
-	}
-
-	/* (non-javadoc)
-	 * Answers a <code>StrinBuffer</code> containing all of the required targets to
-	 * properly build the project.
-	 */
-	protected StringBuffer addTargets() {
-		StringBuffer buffer = new StringBuffer();
-
-		// Get the target and it's extension
-		String target = info.getBuildArtifactName();
-		IPath temp = new Path(target);
-		String extension = temp.getFileExtension();
-		
-		/*
-		 * Write out the target rule as:
-		 * <prefix><target>.<extension>: $(CC_SRCS:$(ROOT)/%.cpp=%.o) $(C_SRCS:$(ROOT)/%.c=%.o)
-		 * 		<cd <Proj_Dep_1/build_dir>; make all> 
-		 * 		<cd <Proj_Dep_.../build_dir>; make all> 
-		 * 		<cd <Proj_Dep_n/build_dir>; make all> 
-		 * 		$(BUILD_TOOL) $(FLAGS) $(OUTPUT_FLAG) $@ $^ $(LIB_DEPS)
-		 */
-		String cmd = info.getToolForTarget(extension);
-		String flags = info.getFlagsForTarget(extension);
-		String outflag = info.getOutputFlag(extension);
-		String outputPrefix = info.getOutputPrefix(extension);
-
-		buffer.append(outputPrefix + target + COLON + WHITESPACE + "$(CC_SRCS:$(ROOT)/%.cpp=%.o) $(C_SRCS:$(ROOT)/%.c=%.o)" + NEWLINE);
-		IProject[] deps;
-		try {
-			deps = project.getReferencedProjects();
-			for (int i = 0; i < deps.length; i++) {
-				IProject dep = deps[i];
-				String buildDir = dep.getLocation().toString();
-				if (ManagedBuildManager.manages(dep)) {
-					IManagedBuildInfo depInfo = ManagedBuildManager.getBuildInfo(dep);
-					buildDir += SEPARATOR + depInfo.getConfigurationName();
-				}
-				buffer.append(TAB + "cd" + WHITESPACE + buildDir + SEMI_COLON + WHITESPACE + "make all" + NEWLINE);
-			}
-		} catch (CoreException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-
-		buffer.append(TAB + cmd + WHITESPACE + flags + WHITESPACE + outflag + WHITESPACE + "$@" + WHITESPACE + "$^");
-		String[] libraries = info.getLibsForTarget(extension);
-		for (int i = 0; i < libraries.length; i++) {
-			String lib = libraries[i];
-			buffer.append(WHITESPACE + lib);
-		}
-		buffer.append(NEWLINE);
-		buffer.append(NEWLINE);
-
-		// TODO Generate 'all' for now but determine the real rules from UI
-		buffer.append("all: " + outputPrefix + target + NEWLINE);
-		buffer.append(NEWLINE);
-		
-		// Always add a clean target
-		buffer.append(".PHONY: clean" + NEWLINE);
-		buffer.append("clean:" + NEWLINE);
-		buffer.append(TAB + "$(RM)" + WHITESPACE + "${addprefix ., $(CC_SRCS:$(ROOT)%.cpp=%.o)} ${addprefix ., $(C_SRCS:$(ROOT)%.c=%.o)}" + WHITESPACE + outputPrefix + target + NEWLINE);
-		buffer.append(NEWLINE);
-		
-		buffer.append(NEWLINE + CCorePlugin.getResourceString(DEP_INCL) + NEWLINE);
-		buffer.append("include ${patsubst %, %/module.dep, $(MODULES)}" + NEWLINE);
-		
-		buffer.append(NEWLINE);
-		return buffer;
-	}
-
-	protected void addRule(String relativePath, StringBuffer buffer, IResource resource) {
-		String rule = null;
-		String cmd = null;
-		String buildFlags = null;
-		String inputExtension = null;
-		String outputExtension = null;
-		String outflag = null;
-		String outputPrefix = null;
-		
-		// Is there a special rule for this file
-		if (false) {
-		} 
-		else {
-			// Get the extension of the resource
-			inputExtension = resource.getFileExtension();
-			// ASk the build model what it will produce from this
-			outputExtension = info.getOutputExtension(inputExtension);
-			/*
-			 * Create the pattern rule in the format
-			 * <relative_path>/%.o: $(ROOT)/<relative_path>/%.cpp
-			 * 		$(CC) $(CFLAGS) $(OUTPUT_FLAG) $@ $<
-			 * 
-			 * Note that CC CFLAGS and OUTPUT_FLAG all come from the build model
-			 * and are resolved to a real command before writing to the module
-			 * makefile, so a real command might look something like
-			 * source1/%.o: $(ROOT)/source1/%.cpp
-			 * 		g++ -g -O2 -c -I/cygdrive/c/eclipse/workspace/Project/headers -o $@ $<
-			 */ 
-			rule = relativePath + WILDCARD + DOT + outputExtension + COLON + WHITESPACE + "$(ROOT)" + SEPARATOR + relativePath + WILDCARD + DOT + inputExtension;
-		}
-
-		// Check if the rule is listed as something we already generated in the makefile
-		if (!getRuleList().contains(rule)) {
-			// Add it to the list
-			getRuleList().add(rule);
-
-			// Add the rule and command to the makefile
-			buffer.append(rule + NEWLINE);
-			cmd = info.getToolForSource(inputExtension);
-			buildFlags = info.getFlagsForSource(inputExtension);
-			outflag = info.getOutputFlag(outputExtension);
-			outputPrefix = info.getOutputPrefix(outputExtension);
-			buffer.append(TAB + cmd + WHITESPACE + buildFlags + WHITESPACE + outflag + WHITESPACE + outputPrefix + "$@" + WHITESPACE + "$<" + NEWLINE + NEWLINE);
-		}
-	}
-	
-	/**
-	 * Adds the container of the argument to the list of folders in the project that
-	 * contribute source files to the build. The resource visitor has already established 
-	 * that the build model knows how to build the files. It has also checked that
-	 * the resouce is not generated as part of the build.
-	 *  
-	 * @param resource
-	 */
-	public void appendBuildSubdirectory(IResource resource) {
-		IContainer container = resource.getParent();
-		if (!getSubdirList().contains(container)) {
-			getSubdirList().add(container);		
-		}
-	}
-	
-	/**
-	 * Adds the container of the argument to a list of subdirectories that are part 
-	 * of an incremental rebuild of the project. The makefile fragments for these 
-	 * directories will be regenerated as a result of the build.
-	 * 
-	 * @param resource
-	 */
-	public void appendModifiedSubdirectory(IResource resource) {
-		IContainer container = resource.getParent();
-		if (!getModifiedList().contains(container)) {
-			getModifiedList().add(container);		
-		}
-	}
-
-	/**
-	 * Check whether the build has been cancelled. Cancellation requests 
-	 * propagated to the caller by throwing <code>OperationCanceledException</code>.
-	 * 
-	 * @see org.eclipse.core.runtime.OperationCanceledException#OperationCanceledException()
-	 */
-	public void checkCancel() {
-		if (monitor != null && monitor.isCanceled()) {
-			throw new OperationCanceledException();
-		}
-	}
-
-
-	/**
-	 * Clients call this method when an incremental rebuild is required. The argument
-	 * contains a set of resource deltas that will be used to determine which 
-	 * subdirectories need a new makefile and dependency list (if any). 
-	 * 
-	 * @param delta
-	 * @throws CoreException
-	 */
-	public void generateMakefiles(IResourceDelta delta) throws CoreException {
-		/*
-		 * Let's do a sanity check right now. This is an incremental build, so if the top-level directory is not there, then
-		 * a rebuild is needed anyway.
-		 */
-		IFolder folder = project.getFolder(info.getConfigurationName());
-		if (!folder.exists()) {
-			regenerateMakefiles();
-			shouldRunBuild(true);
-			return;
-		}
-
-		// Visit the resources in the delta and compile a list of subdirectories to regenerate
-		ResourceDeltaVisitor visitor = new ResourceDeltaVisitor(this, info);
-		delta.accept(visitor);
-		// There may be nothing to regenerate and no content changes that require a rebuild 
-		if (getModifiedList().isEmpty() && !shouldRunBuild()) {
-			// There is nothing to build
-			IStatus status = new Status(IStatus.INFO, CCorePlugin.PLUGIN_ID, GeneratedMakefileBuilder.EMPTY_PROJECT_BUILD_ERROR, "", null);
-			throw new CoreException(status);
-		}
-
-		// See if the user has cancelled the build
-		checkCancel();
-	
-		// The top-level makefile needs this information
-		ResourceProxyVisitor resourceVisitor = new ResourceProxyVisitor(this, info);
-		project.accept(resourceVisitor, IResource.NONE);
-		if (getSubdirList().isEmpty()) {
-			// There is nothing to build (but we should never throw this exception)
-			IStatus status = new Status(IStatus.INFO, CCorePlugin.PLUGIN_ID, GeneratedMakefileBuilder.EMPTY_PROJECT_BUILD_ERROR, "", null);
-			throw new CoreException(status);
-		}
-		checkCancel();
-
-		// Regenerate any fragments that are missing for the exisiting directories NOT modified
-		Iterator iter = getSubdirList().listIterator();
-		while (iter.hasNext()) {
-			IContainer subdirectory = (IContainer)iter.next();
-			if (!getModifiedList().contains(subdirectory)) {
-				// Make sure a fragment makefile and dependency file exist
-				IFile makeFragment = project.getFile(subdirectory.getFullPath().addTrailingSeparator().append(MODFILE_NAME));
-				IFile depFragment = project.getFile(subdirectory.getFullPath().addTrailingSeparator().append(DEPFILE_NAME));
-				if (!makeFragment.exists() || !depFragment.exists()) {
-					// If one or both are missing, then add it to the list to be generated
-					getModifiedList().add(subdirectory);
-				}
-			}
-		}
-
-		// Re-create the top-level makefile
-		topBuildDir = createDirectory(info.getConfigurationName());
-		IPath makefilePath = topBuildDir.addTrailingSeparator().append(MAKEFILE_NAME);
-		IFile makefileHandle = createFile(makefilePath);
-		populateTopMakefile(makefileHandle);
-		checkCancel();
-		
-		// Regenerate any fragments for modified directories
-		iter = getModifiedList().listIterator();
-		while (iter.hasNext()) {
-			populateFragmentMakefile((IContainer) iter.next());
-			checkCancel();
-		}
-	}
-	
-	/* (non-javadoc)
-	 * @return
-	 */
-	private List getModifiedList() {
-		if (modifiedList == null) {
-			modifiedList = new ArrayList();
-		}
-		return modifiedList;
-	}
-
-	/* (non-javadoc)
-	 * Answers the list of known build rules. This keeps me from generating duplicate
-	 * rules for known file extensions.
-	 * 
-	 */
-	private List getRuleList() {
-		if (ruleList == null) {
-			ruleList = new ArrayList();
-		}
-		return ruleList;
-	}
-
-	/* (non-javadoc)
-	 * Answers the list of subdirectories contributing source code to the build
-	 * @return
-	 */
-	private List getSubdirList() {
-		if (subdirList == null) {
-			subdirList = new ArrayList();
-		}
-		return subdirList;
-	}
-
-	/* (non-javadoc)
-	 * @param string
-	 * @return
-	 */
-	private IPath createDirectory(String dirName) throws CoreException {
-		// Create or get the handle for the build directory 
-		IFolder folder = project.getFolder(dirName);
-		if (!folder.exists()) {
-
-			// Make sure that parent folders exist
-			IPath parentPath = (new Path(dirName)).removeLastSegments(1);
-			// Assume that the parent exists if the path is empty
-			if (!parentPath.isEmpty()) {
-				IFolder parent = project.getFolder(parentPath);
-				if (!parent.exists()) {
-					createDirectory(parentPath.toString());
-				}
-			}
-			
-			// Now make the requested folder
-			try {
-				folder.create(true, true, null);
-			}
-			catch (CoreException e) {
-				if (e.getStatus().getCode() == IResourceStatus.PATH_OCCUPIED)
-					folder.refreshLocal(IResource.DEPTH_ZERO, null);
-				else
-					throw e;
-			}
-		}
-		return folder.getFullPath();
-	}
-
-	/* (non-javadoc)
-	 * @param makefilePath
-	 * @param monitor
-	 * @return
-	 */
-	private IFile createFile(IPath makefilePath) throws CoreException {
-		// Create or get the handle for the makefile
-		IWorkspaceRoot root = CCorePlugin.getWorkspace().getRoot();
-		IFile newFile = root.getFileForLocation(makefilePath);
-		if (newFile == null) {
-			newFile = root.getFile(makefilePath);
-		}
-		// Create the file if it does not exist
-		ByteArrayInputStream contents = new ByteArrayInputStream(new byte[0]);
-		try {
-			newFile.create(contents, false, monitor);
-		}
-		catch (CoreException e) {
-			// If the file already existed locally, just refresh to get contents
-			if (e.getStatus().getCode() == IResourceStatus.PATH_OCCUPIED)
-				newFile.refreshLocal(IResource.DEPTH_ZERO, null);
-			else
-				throw e;
-		}
-
-		return newFile;
-	}
-
-	/**
-	 * Answers the <code>IPath</code> of the top directory generated for the build
-	 * output, or <code>null</code> if none has been generated.
-	 * 
-	 * @return
-	 */
-	public IPath getTopBuildDir() {
-		return topBuildDir;
-	}
-
-	/**
-	 * Answers <code>true</code> if the argument is found in a generated container 
-	 * @param resource
-	 * @return
-	 */
-	public boolean isGeneratedResource(IResource resource) {
-		// Is this a generated directory ...
-		IPath path = resource.getProjectRelativePath();
-		String[] configNames = info.getConfigurationNames();
-		for (int i = 0; i < configNames.length; i++) {
-			String name = configNames[i];
-			IPath root = new Path(name);
-			// It is if it is a root of the resource pathname
-			if (root.isPrefixOf(path)) return true;
-		}
-		
-		return false;
-	}
-
-	/* (non-javadoc)
-	 * Create the entire contents of the makefile.
-	 * 
-	 * @param fileHandle The file to place the contents in.
-	 * @param info
-	 * @param monitor
-	 */
-	protected void populateTopMakefile(IFile fileHandle) {
-		StringBuffer buffer = new StringBuffer();
-		
-		// Add the macro definitions
-		buffer.append(addMacros());
-
-		// Append the module list		
-		buffer.append(addModules()); 
-
-		// Add targets
-		buffer.append(addTargets());
-
-		// Save the file
-		try {
-			Util.save(buffer, fileHandle);
-		} catch (CoreException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	/* (non-javadoc)
-	 * @param module
-	 */
-	protected void populateFragmentMakefile(IContainer module) throws CoreException {
-		// Calcualte the new directory relative to the build output
-		IPath moduleRelativePath = module.getProjectRelativePath();
-		IPath buildRoot = getTopBuildDir().removeFirstSegments(1);
-		if (buildRoot == null) {
-			return;
-		}
-		IPath moduleOutputPath = buildRoot.append(moduleRelativePath);
-		
-		// Now create the directory
-		IPath moduleOutputDir = createDirectory(moduleOutputPath.toString());
-		
-		// Create a module makefile
-		IFile modMakefile = createFile(moduleOutputDir.addTrailingSeparator().append(MODFILE_NAME));
-		StringBuffer makeBuf = new StringBuffer();
-		makeBuf.append(addSources(module));
-
-		// Create a module dep file
-		IFile modDepfile = createFile(moduleOutputDir.addTrailingSeparator().append(DEPFILE_NAME));
-		StringBuffer depBuf = new StringBuffer();
-		depBuf.append(addDeps(module));
-
-		// Save the files
-		Util.save(makeBuf, modMakefile);
-		Util.save(depBuf, modDepfile);
-	}
-
-
-	/**
-	 * @throws CoreException
-	 */
-	public void regenerateMakefiles() throws CoreException {
-		// Visit the resources in the project
-		ResourceProxyVisitor visitor = new ResourceProxyVisitor(this, info);
-		project.accept(visitor, IResource.NONE);
-		if (getSubdirList().isEmpty()) {
-			// There is nothing to build
-			IStatus status = new Status(IStatus.INFO, CCorePlugin.PLUGIN_ID, GeneratedMakefileBuilder.EMPTY_PROJECT_BUILD_ERROR, "", null);
-			throw new CoreException(status);
-		}
-
-		// See if the user has cancelled the build
-		checkCancel();
-
-		// Create the top-level directory for the build output
-		topBuildDir = createDirectory(info.getConfigurationName());
-		
-		// Create the top-level makefile
-		IPath makefilePath = topBuildDir.addTrailingSeparator().append(MAKEFILE_NAME);
-		IFile makefileHandle = createFile(makefilePath);
-		
-		// Populate the makefile
-		populateTopMakefile(makefileHandle);
-		checkCancel();
-		
-		// Now populate the module makefiles
-		ListIterator iter = getSubdirList().listIterator();
-		while (iter.hasNext()) {
-			populateFragmentMakefile((IContainer)iter.next());
-			checkCancel();
-		}
-	}
-	/**
-	 * Answers whether a build is required after the makefiles have been 
-	 * generated.
-	 * 
-	 * @return
-	 */
-	public boolean shouldRunBuild() {
-		return shouldRunBuild;
-	}
-
-	/**
-	 * Sets the build flag to the value of the argument.
-	 * 
-	 * @param b
-	 */
-	public void shouldRunBuild(boolean b) {
-		shouldRunBuild = b;
-	}
-
-}
Index: .classpath
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/.classpath,v
retrieving revision 1.6
diff -u -r1.6 .classpath
--- .classpath	28 Aug 2003 17:38:09 -0000	1.6
+++ .classpath	15 Sep 2003 19:00:59 -0000
@@ -12,11 +12,16 @@
     <classpathentry kind="src" path="/org.eclipse.core.resources"/>
     <classpathentry kind="src" path="/org.eclipse.core.runtime"/>
     <classpathentry kind="src" path="/org.eclipse.cdt.core"/>
+    <classpathentry kind="src" path="/org.eclipse.cdt.core.linux"/>
+    <classpathentry kind="src" path="/org.eclipse.cdt.core.qnx"/>
+    <classpathentry kind="src" path="/org.eclipse.cdt.core.solaris"/>
+    <classpathentry kind="src" path="/org.eclipse.cdt.core.win32"/>
+    <classpathentry kind="src" path="/org.eclipse.cdt.ui"/>
     <classpathentry kind="src" path="/org.eclipse.swt"/>
     <classpathentry kind="src" path="/org.eclipse.ui"/>
     <classpathentry kind="src" path="/org.junit"/>
     <classpathentry kind="src" path="/org.eclipse.core.boot"/>
     <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-    <classpathentry kind="src" path="/org.eclipse.cdt.ui"/>
+    <classpathentry kind="src" path="/org.eclipse.cdt.managedbuilder.core"/>
     <classpathentry kind="output" path="bin"/>
 </classpath>
Index: .project
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/.project,v
retrieving revision 1.4
diff -u -r1.4 .project
--- .project	27 Aug 2003 18:38:11 -0000	1.4
+++ .project	15 Sep 2003 19:00:59 -0000
@@ -5,6 +5,11 @@
 	<projects>
 		<project>org.apache.xerces</project>
 		<project>org.eclipse.cdt.core</project>
+		<project>org.eclipse.cdt.core.linux</project>
+		<project>org.eclipse.cdt.core.qnx</project>
+		<project>org.eclipse.cdt.core.solaris</project>
+		<project>org.eclipse.cdt.core.win32</project>
+		<project>org.eclipse.cdt.managedbuilder.core</project>
 		<project>org.eclipse.cdt.ui</project>
 		<project>org.eclipse.core.boot</project>
 		<project>org.eclipse.core.resources</project>
Index: plugin.xml
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/plugin.xml,v
retrieving revision 1.7
diff -u -r1.7 plugin.xml
--- plugin.xml	20 Aug 2003 17:52:27 -0000	1.7
+++ plugin.xml	15 Sep 2003 19:00:59 -0000
@@ -19,13 +19,14 @@
       <import plugin="org.eclipse.swt"/>
       <import plugin="org.eclipse.ui"/>
       <import plugin="org.junit"/>
+      <import plugin="org.eclipse.cdt.managedbuilder.core"/>
    </requires>
 
 
    <extension
          id="buildTest"
          name="Tools for Build Test"
-         point="org.eclipse.cdt.core.ManagedBuildInfo">
+         point="org.eclipse.cdt.managedbuilder.core.ManagedBuildInfo">
       <target
             makeFlags="-k"
             isTest="true"
Index: build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java,v
retrieving revision 1.3
diff -u -r1.3 ManagedBuildTests.java
--- build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java	11 Sep 2003 14:46:08 -0000	1.3
+++ build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java	15 Sep 2003 19:00:59 -0000
@@ -20,19 +20,19 @@
 
 import org.eclipse.cdt.core.CCorePlugin;
 import org.eclipse.cdt.core.ICDescriptor;
-import org.eclipse.cdt.core.ManagedCProjectNature;
-import org.eclipse.cdt.core.build.managed.BuildException;
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.IManagedBuildInfo;
-import org.eclipse.cdt.core.build.managed.IOption;
-import org.eclipse.cdt.core.build.managed.IOptionCategory;
-import org.eclipse.cdt.core.build.managed.ITarget;
-import org.eclipse.cdt.core.build.managed.ITool;
-import org.eclipse.cdt.core.build.managed.ManagedBuildManager;
 import org.eclipse.cdt.core.parser.IScannerInfo;
 import org.eclipse.cdt.core.parser.IScannerInfoChangeListener;
 import org.eclipse.cdt.core.parser.IScannerInfoProvider;
-import org.eclipse.cdt.internal.core.build.managed.ToolReference;
+import org.eclipse.cdt.managedbuilder.core.BuildException;
+import org.eclipse.cdt.managedbuilder.core.IConfiguration;
+import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
+import org.eclipse.cdt.managedbuilder.core.IOption;
+import org.eclipse.cdt.managedbuilder.core.IOptionCategory;
+import org.eclipse.cdt.managedbuilder.core.ITarget;
+import org.eclipse.cdt.managedbuilder.core.ITool;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import org.eclipse.cdt.managedbuilder.core.ManagedCProjectNature;
+import org.eclipse.cdt.managedbuilder.internal.core.ToolReference;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IProjectDescription;
 import org.eclipse.core.resources.IResource;
Index: .classpath
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/.classpath,v
retrieving revision 1.6
diff -u -r1.6 .classpath
--- .classpath	17 Feb 2003 19:13:07 -0000	1.6
+++ .classpath	15 Sep 2003 19:01:10 -0000
@@ -2,7 +2,6 @@
 <classpath>
     <classpathentry kind="src" path="src/"/>
     <classpathentry kind="src" path="utils.ui/"/>
-    <classpathentry kind="src" path="build"/>
     <classpathentry kind="src" path="/org.eclipse.ui"/>
     <classpathentry kind="src" path="/org.eclipse.core.resources"/>
     <classpathentry kind="src" path="/org.apache.xerces"/>
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.172
diff -u -r1.172 ChangeLog
--- ChangeLog	15 Sep 2003 17:31:28 -0000	1.172
+++ ChangeLog	15 Sep 2003 19:01:11 -0000
@@ -1,3 +1,9 @@
+<<<<<<< ChangeLog
+2003-09-15 Sean Evoy
+	Moved the managed builder UI components, externalized strings, 
+	plugin definition, and icons into the new managedbuilder.ui project.
+
+=======
 2003-09-13 Andrew Niefer
 	- bug42836 - prepopulate template classes from Outline View
 	- bug43016 - Search: Cannot find macro declarations 
@@ -5,6 +11,7 @@
 		- modified performAction & determineInitValuesFrom in CSearchPage
 		- modified getImage in CSearchResultLabelProvider
 		
+>>>>>>> 1.172
 2003-09-11 Andrew Niefer
 	- bug42837 - fixed populating search dialog on function declarations
 		- modified determineInitValuesFrom in CSearchPage
Index: plugin.properties
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/plugin.properties,v
retrieving revision 1.25
diff -u -r1.25 plugin.properties
--- plugin.properties	20 Aug 2003 17:52:23 -0000	1.25
+++ plugin.properties	15 Sep 2003 19:01:11 -0000
@@ -18,15 +18,11 @@
 newCWizardsCategory.name=C
 StdCWizard.name=Standard Make C Project
 StdCWizard.description=Create a new C project and let me create and manage the makefile
-MngCWizard.name=Managed Make C Project
-MngCWizard.description=Create a new C project and let Eclipse create and manage the makefile
 
 # C++
 newCCWizardsCategory.name=C++
 StdCCWizard.name=Standard Make C++ Project
 StdCCWizard.description=Create a new C++ project and let me create and manage the makefile
-MngCCWizard.name=Managed Make C++ Project
-MngCCWizard.description=Create a new C++ project and let Eclipse create and manage the makefile
 
 #Project Conversion
 ConversionWizard.name=Convert a project's nature
@@ -86,22 +82,6 @@
 
 # Task Action
 DeleteTaskAction.label=Delete C/C++ Markers
-
-# Build Model Names
-ConfigName.Rel=Release
-ConfigName.Dbg=Debug
-ToolName.preprocessor = Preprocessor
-ToolName.compiler = Compiler
-ToolName.archiver = Archiver
-ToolName.linker = Linker
-OptionCategory.Preproc = Preprocessor
-OptionCategory.Dirs = Directories
-OptionCategory.General = General
-OptionCategory.Optimize=Optimization
-OptionCategory.Debug=Debugging
-OptionCategory.Warn=Warnings
-OptionCategory.Misc=Miscellaneous
-OptionCategory.Libs=Libraries
 
 # C/C++ Search
 CSearchPage.label= C/C++ Search
Index: plugin.xml
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/plugin.xml,v
retrieving revision 1.42
diff -u -r1.42 plugin.xml
--- plugin.xml	20 Aug 2003 17:52:23 -0000	1.42
+++ plugin.xml	15 Sep 2003 19:01:11 -0000
@@ -227,31 +227,6 @@
                class="org.eclipse.core.resources.IResource">
          </selection>
       </wizard>
-<!-- Managed Make Builder Projects -->
-      <wizard
-            name="%MngCCWizard.name"
-            icon="icons/full/wizban/newmngcc_app.gif"
-            category="org.eclipse.cdt.ui.newCCWizards"
-            class="org.eclipse.cdt.ui.build.wizards.ManagedCCWizard"
-            project="true"
-            finalPerspective="org.eclipse.cdt.ui.CPerspective"
-            id="org.eclipse.cdt.ui.wizards.StdCCWizard">
-         <description>
-            %MngCCWizard.description
-         </description>
-      </wizard>
-      <wizard
-            name="%MngCWizard.name"
-            icon="icons/full/wizban/newmngcc_app.gif"
-            category="org.eclipse.cdt.ui.newCWizards"
-            class="org.eclipse.cdt.ui.build.wizards.ManagedCWizard"
-            project="true"
-            finalPerspective="org.eclipse.cdt.ui.CPerspective"
-            id="org.eclipse.cdt.ui.wizards.StdCWizard">
-         <description>
-            %MngCWizard.description
-         </description>
-      </wizard>
       <wizard
             name="%NewWizards.class"
             icon="icons/full/ctool16/newclass_wiz.gif"
@@ -339,16 +314,6 @@
       </page>
       <page
             objectClass="org.eclipse.core.resources.IProject"
-            name="C/C++ Build"
-            class="org.eclipse.cdt.ui.build.properties.BuildPropertyPage"
-            id="org.eclipse.cdt.ui.build.properties">
-         <filter
-               name="nature"
-               value="org.eclipse.cdt.core.managedBuildNature">
-         </filter>
-      </page>
-      <page
-            objectClass="org.eclipse.core.resources.IProject"
             name="%todoPageName"
             class="org.eclipse.cdt.internal.ui.preferences.TodoTaskPropertyPage"
             id="org.eclipse.cdt.ui.propertyPages.TodoTaskPropertyPage">
@@ -617,1474 +582,7 @@
       </toolTabGroup>
    </extension>
  -->
-   <extension
-         id="cdt.managed.build.info"
-         name="Managed Build Tools Description"
-         point="org.eclipse.cdt.core.ManagedBuildInfo">
-      <target
-            makeFlags="-k"
-            isTest="false"
-            cleanCommand="rm -rf"
-            name="Cygwin"
-            isAbstract="true"
-            makeCommand="make"
-            id="cygwin">
-         <tool
-               sources="c,cc,cpp,cxx,C"
-               name="%ToolName.compiler"
-               outputFlag="-o"
-               outputs="o"
-               command="g++"
-               id="org.eclipse.cdt.build.tool.cygwin.compiler">
-            <optionCategory
-                  owner="org.eclipse.cdt.build.tool.cygwin.compiler"
-                  name="%OptionCategory.Preproc"
-                  id="cygwin.compiler.category.preprocessor">
-            </optionCategory>
-            <option
-                  defaultValue="false"
-                  name="Do not search system directories (-nostdinc)"
-                  category="cygwin.compiler.category.preprocessor"
-                  command="-nostdinc"
-                  valueType="boolean"
-                  id="cygwin.gnu.compiler.preprocessor.nostdinc">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Preprocess only (-E)"
-                  category="cygwin.compiler.category.preprocessor"
-                  command="-E"
-                  valueType="boolean"
-                  id="cygwin.gnu.compiler.preprocessor.preprocess">
-            </option>
-            <option
-                  name="Answers (-A)"
-                  category="cygwin.compiler.category.preprocessor"
-                  command="-A"
-                  valueType="stringList"
-                  id="cygwin.gnu.preprocessor.answers">
-            </option>
-            <optionCategory
-                  owner="org.eclipse.cdt.build.tool.cygwin.compiler"
-                  name="Symbols"
-                  id="cygwin.gnu.compiler.category.symbols">
-            </optionCategory>
-            <option
-                  name="Defined symbols (-D)"
-                  category="cygwin.gnu.compiler.category.symbols"
-                  command="-D"
-                  valueType="definedSymbols"
-                  id="cygwin.preprocessor.def.symbols">
-               <listOptionValue
-                     value="_X86_=1"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__OPTIMIZE__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__STDC_HOSTED__=1"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="i386"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__i386"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__i386__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__tune_i686__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__tune_pentiumpro__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__tune_pentium2__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__tune_pentium3__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__stdcall=__attribute__((__stdcall__))"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__fastcall=__attribute__((__fastcall__))"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__cdecl=__attribute__((__cdecl__))"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="_stdcall=__attribute__((__stdcall__))"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="_fastcall=__attribute__((__fastcall__))"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="_cdecl=__attribute__((__cdecl__))"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__declspec(x)=__attribute__((x))"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__CYGWIN32__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__CYGWIN__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="unix"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__unix__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__unix"
-                     builtIn="true">
-               </listOptionValue>
-            </option>
-            <option
-                  name="Undefined symbols (-U)"
-                  category="cygwin.gnu.compiler.category.symbols"
-                  command="-U"
-                  valueType="stringList"
-                  id="cygwin.preprocessor.undef.symbol">
-            </option>
-            <optionCategory
-                  owner="org.eclipse.cdt.build.tool.cygwin.compiler"
-                  name="%OptionCategory.General"
-                  id="cygwin.compiler.category.general">
-            </optionCategory>
-            <option
-                  defaultValue="-c"
-                  name="Compiler Flags"
-                  category="cygwin.compiler.category.general"
-                  valueType="string"
-                  id="cygwin.compiler.general.ccflags">
-            </option>
-            <option
-                  name="Optimization Level"
-                  category="cygwin.compiler.category.general"
-                  valueType="enumerated"
-                  id="cygwin.compiler.general.optimization.level">
-               <enumeratedOptionValue
-                     name="None (-O0)"
-                     command="-O0"
-                     id="cygwin.optimization.level.none">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Optimize (-O1)"
-                     command="-O1"
-                     id="cygwin.optimization.level.optimize">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Optimize more (-O2)"
-                     isDefault="true"
-                     command="-O2"
-                     id="cygwin.optimization.level.more">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Optimize most (-O3)"
-                     command="-O3"
-                     id="cygwin.optimization.level.most">
-               </enumeratedOptionValue>
-            </option>
-            <option
-                  name="Debug Level"
-                  category="cygwin.compiler.category.general"
-                  valueType="enumerated"
-                  id="cygwin.compiler.debugging.level">
-               <enumeratedOptionValue
-                     name="None"
-                     isDefault="false"
-                     id="cygwin.debugging.level.none">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Minimal (-g1)"
-                     command="-g1"
-                     id="cygwin.debugging.level.minimal">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Default (-g)"
-                     isDefault="true"
-                     command="-g"
-                     id="cygwin.debugging.level.default">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Maximum (-g3)"
-                     isDefault="false"
-                     command="-g3"
-                     id="cygwin.debugging.level.max">
-               </enumeratedOptionValue>
-            </option>
-            <option
-                  name="Include Paths"
-                  category="cygwin.compiler.category.general"
-                  command="-I"
-                  valueType="includePath"
-                  id="cygwin.compiler.general.include.paths">
-               <listOptionValue
-                     value="C:\cygwin\usr\include\w32api"
-                     builtIn="true">
-               </listOptionValue>
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Verbose"
-                  category="cygwin.compiler.category.general"
-                  command="-v"
-                  valueType="boolean"
-                  id="cygwin.compiler.general.verbose">
-            </option>
-         </tool>
-      </target>
-      <target
-            isTest="false"
-            name="Cygwin Executable"
-            parent="cygwin"
-            defaultExtension="exe"
-            isAbstract="false"
-            id="cygwin.exec">
-         <configuration
-               name="%ConfigName.Rel"
-               id="cygwin.exec.release">
-         </configuration>
-         <configuration
-               name="%ConfigName.Dbg"
-               id="cygwin.exec.debug">
-         </configuration>
-         <tool
-               name="%ToolName.linker"
-               outputFlag="-o"
-               outputs="exe"
-               command="g++"
-               id="org.eclipse.cdt.build.tool.cygwin.link">
-            <optionCategory
-                  owner="org.eclipse.cdt.build.tool.cygwin.link"
-                  name="%OptionCategory.General"
-                  id="cygwin.linker.category.general">
-            </optionCategory>
-            <option
-                  name="Linker Flags"
-                  category="cygwin.linker.category.general"
-                  valueType="string"
-                  id="cygwin.link.ld.flags">
-            </option>
-            <option
-                  name="Library Paths"
-                  category="cygwin.linker.category.general"
-                  command="-L"
-                  valueType="stringList"
-                  id="cygwin.link.ld.paths">
-            </option>
-            <option
-                  name="Libraries"
-                  category="cygwin.linker.category.general"
-                  command="-l"
-                  valueType="libs"
-                  id="cygwin.link.libs">
-            </option>
-         </tool>
-      </target>
-      <target
-            isTest="false"
-            name="Cygwin Shared Library"
-            parent="cygwin"
-            defaultExtension="dll"
-            isAbstract="false"
-            id="cygwin.so">
-         <configuration
-               name="%ConfigName.Rel"
-               id="cygwin.so.release">
-         </configuration>
-         <configuration
-               name="%ConfigName.Dbg"
-               id="cygwin.so.debug">
-         </configuration>
-         <tool
-               name="%ToolName.linker"
-               outputFlag="-o"
-               outputs="dll"
-               outputPrefix="lib"
-               command="g++ -shared"
-               id="org.eclipse.cdt.build.tool.cygwin.solink">
-            <optionCategory
-                  owner="org.eclipse.cdt.build.tool.cygwin.solink"
-                  name="%OptionCategory.General"
-                  id="cygwin.solink.category.general">
-            </optionCategory>
-            <option
-                  defaultValue=""
-                  name="Linker Flags"
-                  category="cygwin.solink.category.general"
-                  valueType="string"
-                  id="cygwin.solink.ld.flags">
-            </option>
-            <option
-                  name="Library Paths"
-                  category="cygwin.solink.category.general"
-                  command="-L"
-                  valueType="stringList"
-                  id="cygwin.solink.ld.paths">
-            </option>
-            <option
-                  name="Libraries"
-                  category="cygwin.solink.category.general"
-                  command="-l"
-                  valueType="libs"
-                  id="cygwin.solink.libs">
-            </option>
-         </tool>
-      </target>
-      <target
-            isTest="true"
-            name="Cygwin Export Library (DLL)"
-            parent="cygwin"
-            defaultExtension="dll.a"
-            isAbstract="false"
-            id="cygwin.exp">
-         <configuration
-               name="%ConfigName.Rel"
-               id="cygwin.exp.release">
-         </configuration>
-         <configuration
-               name="%ConfigName.Dbg"
-               id="cygwin.exp.debug">
-         </configuration>
-         <tool
-               name="%ToolName.linker"
-               outputFlag="-o"
-               outputs="dll"
-               outputPrefix="cyg"
-               command="g++ -shared"
-               id="org.eclipse.cdt.build.tool.cygwin.explink">
-            <optionCategory
-                  owner="org.eclipse.cdt.build.tool.cygwin.explink"
-                  name="%OptionCategory.General"
-                  id="cygwin.explink.category.general">
-            </optionCategory>
-            <option
-                  defaultValue="-Wl,--export-all-symbols -Wl,--enable-auto-import"
-                  name="Linker Flags"
-                  category="cygwin.explink.category.general"
-                  valueType="string"
-                  id="cygwin.explink.ld.flags">
-            </option>
-            <option
-                  name="Library Paths"
-                  category="cygwin.explink.category.general"
-                  command="-L"
-                  valueType="stringList"
-                  id="cygwin.explink.ld.paths">
-            </option>
-            <option
-                  name="Libraries"
-                  category="cygwin.explink.category.general"
-                  command="-l"
-                  valueType="libs"
-                  id="cygwin.explink.libs">
-            </option>
-         </tool>
-      </target>
-      <target
-            isTest="false"
-            name="Cygwin Static Library"
-            parent="cygwin"
-            defaultExtension="a"
-            isAbstract="false"
-            id="cygwin.lib">
-         <configuration
-               name="%ConfigName.Rel"
-               id="cygwin.lib.release">
-         </configuration>
-         <configuration
-               name="%ConfigName.Dbg"
-               id="cygwin.lib.debug">
-         </configuration>
-         <tool
-               name="%ToolName.archiver"
-               outputs="a"
-               outputPrefix="lib"
-               command="ar"
-               id="org.eclipse.cdt.build.tool.cygwin.ar">
-            <optionCategory
-                  owner="org.eclipse.cdt.build.tool.cygwin.ar"
-                  name="%OptionCategory.General"
-                  id="cygwin.ar.category.general">
-            </optionCategory>
-            <option
-                  defaultValue="-r"
-                  name="Archiver Flags"
-                  category="cygwin.ar.category.general"
-                  valueType="string"
-                  id="cygwin.ar.flags">
-            </option>
-         </tool>
-      </target>
-      <target
-            makeFlags="-k"
-            isTest="false"
-            cleanCommand="rm -rf"
-            name="Linux"
-            isAbstract="true"
-            makeCommand="make"
-            id="linux.gnu">
-         <tool
-               sources="c,C,cc,cxx,cpp"
-               name="%ToolName.compiler"
-               outputFlag="-o"
-               outputs="o"
-               command="g++"
-               id="cdt.build.tool.linux.gnu.compiler">
-            <optionCategory
-                  owner="cdt.build.tool.linux.gnu.compiler"
-                  name="%OptionCategory.Preproc"
-                  id="linux.gnu.compiler.category.preprocessor">
-            </optionCategory>
-            <option
-                  defaultValue="false"
-                  name="Do not search system directories (-nostdinc)"
-                  category="linux.gnu.compiler.category.preprocessor"
-                  command="-nostdinc"
-                  valueType="boolean"
-                  id="linux.gnu.compiler.preprocessor.nostdinc">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Preprocess only (-E)"
-                  category="linux.gnu.compiler.category.preprocessor"
-                  command="-E"
-                  valueType="boolean"
-                  id="linux.gnu.compiler.preprocessor.preprocess">
-            </option>
-            <option
-                  name="Defined Symbols (-D)"
-                  category="linux.gnu.compiler.category.preprocessor"
-                  command="-D"
-                  valueType="definedSymbols"
-                  id="linux.gnu.compiler.preprocessor.def">
-               <listOptionValue
-                     value="__ELF__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="unix"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__gnu_linux__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="linux"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__unix__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__linux__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__unix"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__linux"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__OPTIMIZE__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__STDC_HOSTED__=1"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="_GNU_SOURCE"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="i386"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__i386"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__i386__"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="__tune_i386__"
-                     builtIn="true">
-               </listOptionValue>
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.linux.gnu.compiler"
-                  name="%OptionCategory.Dirs"
-                  id="linux.gnu.compiler.category.dirs">
-            </optionCategory>
-            <option
-                  name="Include search paths (-I)"
-                  category="linux.gnu.compiler.category.dirs"
-                  command="-I"
-                  valueType="includePath"
-                  id="linux.gnu.compiler.dirs.incpaths">
-               <listOptionValue
-                     value="/usr/local/include"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     value="/usr/include"
-                     builtIn="true">
-               </listOptionValue>
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.linux.gnu.compiler"
-                  name="%OptionCategory.Optimize"
-                  id="linux.gnu.compiler.category.optimization">
-            </optionCategory>
-            <option
-                  name="Optimization Level"
-                  category="linux.gnu.compiler.category.optimization"
-                  value="-O"
-                  valueType="enumerated"
-                  id="linux.gnu.compiler.optimization.level">
-               <enumeratedOptionValue
-                     name="None (-O0)"
-                     command="-O0"
-                     id="linux.gnu.compiler.optimization.level.none">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Optimize (-O1)"
-                     command="-O1"
-                     id="linux.gnu.compiler.optimization.level.optimize">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Optimize more (-O2)"
-                     isDefault="true"
-                     command="-O2"
-                     id="linux.gnu.compiler.optimization.level.more">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Optimize most (-O3)"
-                     command="-O3"
-                     id="linux.gnu.compiler.optimization.level.most">
-               </enumeratedOptionValue>
-            </option>
-            <option
-                  name="Other optimization flags"
-                  category="linux.gnu.compiler.category.optimization"
-                  valueType="string"
-                  id="linux.compiler.optimization.flags">
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.linux.gnu.compiler"
-                  name="%OptionCategory.Debug"
-                  id="linux.gnu.compiler.category.debug">
-            </optionCategory>
-            <option
-                  name="Debug Level"
-                  category="linux.gnu.compiler.category.debug"
-                  valueType="enumerated"
-                  id="linux.gnu.compiler.debugging.level">
-               <enumeratedOptionValue
-                     name="None"
-                     isDefault="false"
-                     id="linux.gnu.compiler.debugging.level.none">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Minimal (-g1)"
-                     command="-g1"
-                     id="linux.gnu.compiler.debugging.level.minimal">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Default (-g)"
-                     isDefault="true"
-                     command="-g"
-                     id="linux.gnu.compiler.debugging.level.default">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Maximum (-g3)"
-                     isDefault="false"
-                     command="-g3"
-                     id="linux.gnu.compiler.debugging.level.max">
-               </enumeratedOptionValue>
-            </option>
-            <option
-                  name="Other debugging flags"
-                  category="linux.gnu.compiler.category.debug"
-                  valueType="string"
-                  id="linux.gnu.compiler.debugging.other">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Generate prof information (-p)"
-                  category="linux.gnu.compiler.category.debug"
-                  command="-p"
-                  valueType="boolean"
-                  id="linux.gnu.compiler.debugging.prof">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Generate gprof information (-pg)"
-                  category="linux.gnu.compiler.category.debug"
-                  command="-pg"
-                  valueType="boolean"
-                  id="linux.gnu.compiler.debugging.gprof">
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.linux.gnu.compiler"
-                  name="%OptionCategory.Warn"
-                  id="linux.gnu.compiler.category.warnings">
-            </optionCategory>
-            <option
-                  defaultValue="false"
-                  name="Check syntax only (-fsyntax-only)"
-                  category="linux.gnu.compiler.category.warnings"
-                  command="-fsyntax-only"
-                  valueType="boolean"
-                  id="linux.gnu.compiler.warnings.syntax">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Pedantic (-pedantic)"
-                  category="linux.gnu.compiler.category.warnings"
-                  command="-pedantic"
-                  valueType="boolean"
-                  id="linux.gnu.compiler.warnings.pedantic">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Pedantic warnings as errors (-pedantic-errors)"
-                  category="linux.gnu.compiler.category.warnings"
-                  command="-pedantic-errors"
-                  valueType="boolean"
-                  id="linux.gnu.compiler.warnings.pedantic.error">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Inhibit all warnings (-w)"
-                  category="linux.gnu.compiler.category.warnings"
-                  command="-w"
-                  valueType="boolean"
-                  id="linux.gnu.compiler.warnings.nowarn">
-            </option>
-            <option
-                  defaultValue="true"
-                  name="All warnings (-Wall)"
-                  category="linux.gnu.compiler.category.warnings"
-                  command="-Wall"
-                  valueType="boolean"
-                  id="linux.gnu.compiler.warnings.allwarn">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Warnings as errors (-werror)"
-                  category="linux.gnu.compiler.category.warnings"
-                  command="-werror"
-                  valueType="boolean"
-                  id="linux.gnu.compiler.warnings.toerrors">
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.linux.gnu.compiler"
-                  name="%OptionCategory.Misc"
-                  id="linux.gnu.compiler.category.other">
-            </optionCategory>
-            <option
-                  defaultValue="false"
-                  name="Verbose (-v)"
-                  category="linux.gnu.compiler.category.other"
-                  command="-v"
-                  valueType="boolean"
-                  id="linux.gnu.compiler.other.verbose">
-            </option>
-            <option
-                  defaultValue="-c"
-                  name="Other flags"
-                  category="linux.gnu.compiler.category.other"
-                  valueType="string"
-                  id="linux.gnu.compiler.other.other">
-            </option>
-         </tool>
-      </target>
-      <target
-            isTest="false"
-            name="Linux Executable"
-            parent="linux.gnu"
-            isAbstract="false"
-            id="linux.gnu.exec">
-         <configuration
-               name="%ConfigName.Rel"
-               id="linux.gnu.exec.release">
-         </configuration>
-         <configuration
-               name="%ConfigName.Dbg"
-               id="linux.gnu.exec.debug">
-         </configuration>
-         <tool
-               sources="o"
-               name="%ToolName.linker"
-               outputFlag="-o"
-               command="g++"
-               id="cdt.build.tool.linux.gnu.link">
-            <optionCategory
-                  owner="cdt.build.tool.linux.gnu.link"
-                  name="%OptionCategory.General"
-                  id="linux.gnu.linker.category.options">
-            </optionCategory>
-            <option
-                  defaultValue="false"
-                  name="Do not use standard start files (-nostartfiles)"
-                  category="linux.gnu.linker.category.options"
-                  command="-nostartfiles"
-                  valueType="boolean"
-                  id="linux.gnu.linker.options.nostart">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Do not use default libraries (-nodefaultlibs)"
-                  category="linux.gnu.linker.category.options"
-                  command="-nodefaultlibs"
-                  valueType="boolean"
-                  id="linux.gnu.linker.options.nodeflibs">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="No startup or default libs (-nostdlib)"
-                  category="linux.gnu.linker.category.options"
-                  command="-nostdlib"
-                  valueType="boolean"
-                  id="linux.gnu.linker.options.nostdlibs">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Remove symbol table (-s)"
-                  category="linux.gnu.linker.category.options"
-                  command="-s"
-                  valueType="boolean"
-                  id="linux.gnu.linker.options.strip">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="No shared libraries (-static)"
-                  category="linux.gnu.linker.category.options"
-                  command="-static"
-                  valueType="boolean"
-                  id="linux.gnu.linker.options.noshared">
-            </option>
-            <option
-                  name="Other options (-Xlinker [option])"
-                  category="linux.gnu.linker.category.options"
-                  command="-Xlinker"
-                  valueType="stringList"
-                  id="linux.gnu.linker.options.other">
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.linux.gnu.link"
-                  name="%OptionCategory.Libs"
-                  id="linux.gnu.linker.category.libs">
-            </optionCategory>
-            <option
-                  name="Libraries"
-                  category="linux.gnu.linker.category.libs"
-                  command="-l"
-                  valueType="libs"
-                  id="linux.gnu.linker.libs.libs">
-            </option>
-            <option
-                  name="Library search path"
-                  category="linux.gnu.linker.category.libs"
-                  command="-L"
-                  valueType="stringList"
-                  id="linux.gnu.linker.libs.paths">
-            </option>
-         </tool>
-      </target>
-      <target
-            isTest="false"
-            name="Linux Shared Library"
-            parent="linux.gnu"
-            defaultExtension="so"
-            isAbstract="false"
-            id="linux.gnu.so">
-         <configuration
-               name="%ConfigName.Rel"
-               id="linux.gnu.so.release">
-         </configuration>
-         <configuration
-               name="%ConfigName.Dbg"
-               id="linux.gnu.so.debug">
-         </configuration>
-         <tool
-               sources="o"
-               name="%ToolName.linker"
-               outputFlag="-o"
-               outputs="so"
-               outputPrefix="lib"
-               command="g++ -shared"
-               id="cdt.build.tool.linux.gnu.solink">
-            <optionCategory
-                  owner="cdt.build.tool.linux.gnu.solink"
-                  name="%OptionCategory.General"
-                  id="linux.gnu.solink.category.options">
-            </optionCategory>
-            <option
-                  defaultValue="false"
-                  name="Do not use standard start files (-nostartfiles)"
-                  category="linux.gnu.solink.category.options"
-                  command="-nostartfiles"
-                  valueType="boolean"
-                  id="linux.gnu.solink.options.nostart">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Do not use default libraries (-nodefaultlibs)"
-                  category="linux.gnu.solink.category.options"
-                  command="-nodefaultlibs"
-                  valueType="boolean"
-                  id="linux.gnu.solink.options.nodeflibs">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="No startup or default libs (-nostdlib)"
-                  category="linux.gnu.solink.category.options"
-                  command="-nostdlib"
-                  valueType="boolean"
-                  id="linux.gnu.solink.options.nostdlibs">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Remove symbol table (-s)"
-                  category="linux.gnu.solink.category.options"
-                  command="-s"
-                  valueType="boolean"
-                  id="linux.gnu.solink.options.strip">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="No shared libraries (-static)"
-                  category="linux.gnu.solink.category.options"
-                  command="-static"
-                  valueType="boolean"
-                  id="linux.gnu.solink.options.noshared">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Bind global symbol references (-symbolic)"
-                  category="linux.gnu.solink.category.options"
-                  command="-symbolic"
-                  valueType="boolean"
-                  id="linux.gnu.solink.options.symbolic">
-            </option>
-            <option
-                  name="Other options (-Xlinker [option])"
-                  category="linux.gnu.solink.category.options"
-                  command="-Xlinker"
-                  valueType="stringList"
-                  id="linux.gnu.solink.options.other">
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.linux.gnu.solink"
-                  name="%OptionCategory.Libs"
-                  id="linux.gnu.solink.category.libs">
-            </optionCategory>
-            <option
-                  name="Libraries"
-                  category="linux.gnu.solink.category.libs"
-                  command="-l"
-                  valueType="libs"
-                  id="linux.gnu.solink.libs.libs">
-            </option>
-            <option
-                  name="Library search path"
-                  category="linux.gnu.solink.category.libs"
-                  command="-L"
-                  valueType="stringList"
-                  id="linux.gnu.solink.libs.paths">
-            </option>
-         </tool>
-      </target>
-      <target
-            isTest="false"
-            name="Linux Static Library"
-            parent="linux.gnu"
-            defaultExtension="a"
-            isAbstract="false"
-            id="linux.gnu.lib">
-         <configuration
-               name="%ConfigName.Rel"
-               id="linux.gnu.lib.release">
-         </configuration>
-         <configuration
-               name="%ConfigName.Dbg"
-               id="linux.gnu.lib.debug">
-         </configuration>
-         <tool
-               sources="o"
-               name="%ToolName.archiver"
-               outputs="a"
-               outputPrefix="lib"
-               command="ar"
-               id="cdt.build.tool.linux.gnu.lib">
-            <optionCategory
-                  owner="cdt.build.tool.linux.gnu.lib"
-                  name="%OptionCategory.General"
-                  id="linux.gnu.lib.category.general">
-            </optionCategory>
-            <option
-                  defaultValue="-r"
-                  name="Archiver Flags"
-                  category="linux.gnu.lib.category.general"
-                  valueType="string"
-                  id="linux.gnu.lib.flags">
-            </option>
-         </tool>
-      </target>
-      <target
-            makeFlags="-k"
-            isTest="false"
-            cleanCommand="rm -rf"
-            name="Solaris"
-            isAbstract="true"
-            makeCommand="make"
-            id="solaris.gnu">
-         <tool
-               sources="c,C,cc,cxx,cpp"
-               name="%ToolName.compiler"
-               outputFlag="-o"
-               outputs="o"
-               command="g++"
-               id="cdt.build.tool.solaris.gnu.compiler">
-            <optionCategory
-                  owner="cdt.build.tool.solaris.gnu.compiler"
-                  name="%OptionCategory.Preproc"
-                  id="solaris.gnu.compiler.category.preprocessor">
-            </optionCategory>
-            <option
-                  defaultValue="false"
-                  name="Do not search system directories (-nostdinc)"
-                  category="solaris.gnu.compiler.category.preprocessor"
-                  command="-nostdinc"
-                  valueType="boolean"
-                  id="solaris.gnu.compiler.preprocessor.nostdinc">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Preprocess only (-E)"
-                  category="solaris.gnu.compiler.category.preprocessor"
-                  command="-E"
-                  valueType="boolean"
-                  id="solaris.gnu.compiler.preprocessor.preprocess">
-            </option>
-            <option
-                  name="Defined Symbols (-D)"
-                  category="solaris.gnu.compiler.category.preprocessor"
-                  command="-D"
-                  valueType="definedSymbols"
-                  id="solaris.gnu.compiler.preprocessor.def">
-               <listOptionValue
-                     builtIn="true"
-                     value="sun">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="sparc">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="unix">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="__svr4__">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="__SVR4">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="__GCC_NEW_VARARGS__">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="__sun__">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="__sparc__">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="__unix__">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="__sun">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="__sparc">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="__unix">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="__OPTIMIZE__">
-               </listOptionValue>
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.solaris.gnu.compiler"
-                  name="%OptionCategory.Dirs"
-                  id="solaris.gnu.compiler.category.dirs">
-            </optionCategory>
-            <option
-                  name="Include search paths (-I)"
-                  category="solaris.gnu.compiler.category.dirs"
-                  command="-I"
-                  valueType="includePath"
-                  id="solaris.gnu.compiler.dirs.incpaths">
-               <listOptionValue
-                     value="/usr/local/include"
-                     builtIn="true">
-               </listOptionValue>
-               <listOptionValue
-                     builtIn="true"
-                     value="/usr/include">
-               </listOptionValue>
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.solaris.gnu.compiler"
-                  name="%OptionCategory.Optimize"
-                  id="solaris.gnu.compiler.category.optimization">
-            </optionCategory>
-            <option
-                  name="Optimization Level"
-                  category="solaris.gnu.compiler.category.optimization"
-                  value="-O"
-                  valueType="enumerated"
-                  id="solaris.gnu.compiler.optimization.level">
-               <enumeratedOptionValue
-                     name="None (-O0)"
-                     command="-O0"
-                     id="solaris.gnu.compiler.optimization.level.none">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Optimize (-O1)"
-                     command="-O1"
-                     id="solaris.gnu.compiler.optimization.level.optimize">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Optimize more (-O2)"
-                     isDefault="true"
-                     command="-O2"
-                     id="solaris.gnu.compiler.optimization.level.more">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Optimize most (-O3)"
-                     command="-O3"
-                     id="solaris.gnu.compiler.optimization.level.most">
-               </enumeratedOptionValue>
-            </option>
-            <option
-                  name="Other optimization flags"
-                  category="solaris.gnu.compiler.category.optimization"
-                  valueType="string"
-                  id="solaris.compiler.optimization.flags">
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.solaris.gnu.compiler"
-                  name="%OptionCategory.Debug"
-                  id="solaris.gnu.compiler.category.debug">
-            </optionCategory>
-            <option
-                  name="Debug Level"
-                  category="solaris.gnu.compiler.category.debug"
-                  valueType="enumerated"
-                  id="solaris.gnu.compiler.debugging.level">
-               <enumeratedOptionValue
-                     name="None"
-                     isDefault="false"
-                     id="solaris.gnu.compiler.debugging.level.none">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Minimal (-g1)"
-                     command="-g1"
-                     id="solaris.gnu.compiler.debugging.level.minimal">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Default (-g)"
-                     isDefault="true"
-                     command="-g"
-                     id="solaris.gnu.compiler.debugging.level.default">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Maximum (-g3)"
-                     isDefault="false"
-                     command="-g3"
-                     id="solaris.gnu.compiler.debugging.level.max">
-               </enumeratedOptionValue>
-            </option>
-            <option
-                  name="Other debugging flags"
-                  category="solaris.gnu.compiler.category.debug"
-                  valueType="string"
-                  id="solaris.gnu.compiler.debugging.other">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Generate prof information (-p)"
-                  category="solaris.gnu.compiler.category.debug"
-                  command="-p"
-                  valueType="boolean"
-                  id="solaris.gnu.compiler.debugging.prof">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Generate gprof information (-pg)"
-                  category="solaris.gnu.compiler.category.debug"
-                  command="-pg"
-                  valueType="boolean"
-                  id="solaris.gnu.compiler.debugging.gprof">
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.solaris.gnu.compiler"
-                  name="%OptionCategory.Warn"
-                  id="solaris.gnu.compiler.category.warnings">
-            </optionCategory>
-            <option
-                  defaultValue="false"
-                  name="Check syntax only (-fsyntax-only)"
-                  category="solaris.gnu.compiler.category.warnings"
-                  command="-fsyntax-only"
-                  valueType="boolean"
-                  id="solaris.gnu.compiler.warnings.syntax">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Pedantic (-pedantic)"
-                  category="solaris.gnu.compiler.category.warnings"
-                  command="-pedantic"
-                  valueType="boolean"
-                  id="solaris.gnu.compiler.warnings.pedantic">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Pedantic warnings as errors (-pedantic-errors)"
-                  category="solaris.gnu.compiler.category.warnings"
-                  command="-pedantic-errors"
-                  valueType="boolean"
-                  id="solaris.gnu.compiler.warnings.pedantic.error">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Inhibit all warnings (-w)"
-                  category="solaris.gnu.compiler.category.warnings"
-                  command="-w"
-                  valueType="boolean"
-                  id="solaris.gnu.compiler.warnings.nowarn">
-            </option>
-            <option
-                  defaultValue="true"
-                  name="All warnings (-Wall)"
-                  category="solaris.gnu.compiler.category.warnings"
-                  command="-Wall"
-                  valueType="boolean"
-                  id="solaris.gnu.compiler.warnings.allwarn">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Warnings as errors (-werror)"
-                  category="solaris.gnu.compiler.category.warnings"
-                  command="-werror"
-                  valueType="boolean"
-                  id="solaris.gnu.compiler.warnings.toerrors">
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.solaris.gnu.compiler"
-                  name="%OptionCategory.Misc"
-                  id="solaris.gnu.compiler.category.other">
-            </optionCategory>
-            <option
-                  defaultValue="false"
-                  name="Verbose (-v)"
-                  category="solaris.gnu.compiler.category.other"
-                  command="-v"
-                  valueType="boolean"
-                  id="solaris.gnu.compiler.other.verbose">
-            </option>
-            <option
-                  defaultValue="-c"
-                  name="Other flags"
-                  category="solaris.gnu.compiler.category.other"
-                  valueType="string"
-                  id="solaris.gnu.compiler.other.other">
-            </option>
-         </tool>
-      </target>
-      <target
-            isTest="false"
-            name="Solaris Executable"
-            parent="solaris.gnu"
-            isAbstract="false"
-            id="solaris.gnu.exec">
-         <configuration
-               name="%ConfigName.Rel"
-               id="solaris.gnu.exec.release">
-         </configuration>
-         <configuration
-               name="%ConfigName.Dbg"
-               id="solaris.gnu.exec.debug">
-         </configuration>
-         <tool
-               sources="o"
-               name="%ToolName.linker"
-               outputFlag="-o"
-               command="g++"
-               id="cdt.build.tool.solaris.gnu.link">
-            <optionCategory
-                  owner="cdt.build.tool.solaris.gnu.link"
-                  name="%OptionCategory.General"
-                  id="solaris.gnu.linker.category.options">
-            </optionCategory>
-            <option
-                  defaultValue="false"
-                  name="Do not use standard start files (-nostartfiles)"
-                  category="solaris.gnu.linker.category.options"
-                  command="-nostartfiles"
-                  valueType="boolean"
-                  id="solaris.gnu.linker.options.nostart">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Do not use default libraries (-nodefaultlibs)"
-                  category="solaris.gnu.linker.category.options"
-                  command="-nodefaultlibs"
-                  valueType="boolean"
-                  id="solaris.gnu.linker.options.nodeflibs">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="No startup or default libs (-nostdlib)"
-                  category="solaris.gnu.linker.category.options"
-                  command="-nostdlib"
-                  valueType="boolean"
-                  id="solaris.gnu.linker.options.nostdlibs">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Remove symbol table (-s)"
-                  category="solaris.gnu.linker.category.options"
-                  command="-s"
-                  valueType="boolean"
-                  id="solaris.gnu.linker.options.strip">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="No shared libraries (-static)"
-                  category="solaris.gnu.linker.category.options"
-                  command="-static"
-                  valueType="boolean"
-                  id="solaris.gnu.linker.options.noshared">
-            </option>
-            <option
-                  name="Other options (-Xlinker [option])"
-                  category="solaris.gnu.linker.category.options"
-                  command="-Xlinker"
-                  valueType="stringList"
-                  id="solaris.gnu.linker.options.other">
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.solaris.gnu.link"
-                  name="%OptionCategory.Libs"
-                  id="solaris.gnu.linker.category.libs">
-            </optionCategory>
-            <option
-                  name="Libraries"
-                  category="solaris.gnu.linker.category.libs"
-                  command="-l"
-                  valueType="libs"
-                  id="solaris.gnu.linker.libs.libs">
-            </option>
-            <option
-                  name="Library search path"
-                  category="solaris.gnu.linker.category.libs"
-                  command="-L"
-                  valueType="stringList"
-                  id="solaris.gnu.linker.libs.paths">
-            </option>
-         </tool>
-      </target>
-      <target
-            isTest="false"
-            name="Solaris Shared Library"
-            parent="solaris.gnu"
-            defaultExtension="so"
-            isAbstract="false"
-            id="solaris.gnu.so">
-         <configuration
-               name="%ConfigName.Rel"
-               id="solaris.gnu.so.release">
-         </configuration>
-         <configuration
-               name="%ConfigName.Dbg"
-               id="solaris.gnu.so.debug">
-         </configuration>
-         <tool
-               sources="o"
-               name="%ToolName.linker"
-               outputFlag="-o"
-               outputs="so"
-               outputPrefix="lib"
-               command="g++ -shared"
-               id="cdt.build.tool.solaris.gnu.solink">
-            <optionCategory
-                  owner="cdt.build.tool.solaris.gnu.solink"
-                  name="%OptionCategory.General"
-                  id="solaris.gnu.solink.category.options">
-            </optionCategory>
-            <option
-                  defaultValue="false"
-                  name="Do not use standard start files (-nostartfiles)"
-                  category="solaris.gnu.solink.category.options"
-                  command="-nostartfiles"
-                  valueType="boolean"
-                  id="solaris.gnu.solink.options.nostart">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Do not use default libraries (-nodefaultlibs)"
-                  category="solaris.gnu.solink.category.options"
-                  command="-nodefaultlibs"
-                  valueType="boolean"
-                  id="solaris.gnu.solink.options.nodeflibs">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="No startup or default libs (-nostdlib)"
-                  category="solaris.gnu.solink.category.options"
-                  command="-nostdlib"
-                  valueType="boolean"
-                  id="solaris.gnu.solink.options.nostdlibs">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Remove symbol table (-s)"
-                  category="solaris.gnu.solink.category.options"
-                  command="-s"
-                  valueType="boolean"
-                  id="solaris.gnu.solink.options.strip">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="No shared libraries (-static)"
-                  category="solaris.gnu.solink.category.options"
-                  command="-static"
-                  valueType="boolean"
-                  id="solaris.gnu.solink.options.noshared">
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Bind global symbol references (-symbolic)"
-                  category="solaris.gnu.solink.category.options"
-                  command="-symbolic"
-                  valueType="boolean"
-                  id="solaris.gnu.solink.options.symbolic">
-            </option>
-            <option
-                  name="Other options (-Xlinker [option])"
-                  category="solaris.gnu.solink.category.options"
-                  command="-Xlinker"
-                  valueType="stringList"
-                  id="solaris.gnu.solink.options.other">
-            </option>
-            <optionCategory
-                  owner="cdt.build.tool.solaris.gnu.solink"
-                  name="%OptionCategory.Libs"
-                  id="solaris.gnu.solink.category.libs">
-            </optionCategory>
-            <option
-                  name="Libraries"
-                  category="solaris.gnu.solink.category.libs"
-                  command="-l"
-                  valueType="libs"
-                  id="solaris.gnu.solink.libs.libs">
-            </option>
-            <option
-                  name="Library search path"
-                  category="solaris.gnu.solink.category.libs"
-                  command="-L"
-                  valueType="stringList"
-                  id="solaris.gnu.solink.libs.paths">
-            </option>
-         </tool>
-      </target>
-      <target
-            isTest="false"
-            name="Solaris Static Library"
-            parent="solaris.gnu"
-            defaultExtension="a"
-            isAbstract="false"
-            id="solaris.gnu.lib">
-         <configuration
-               name="%ConfigName.Rel"
-               id="solaris.gnu.lib.release">
-         </configuration>
-         <configuration
-               name="%ConfigName.Dbg"
-               id="solaris.gnu.lib.debug">
-         </configuration>
-         <tool
-               sources="o"
-               name="%ToolName.archiver"
-               outputs="a"
-               outputPrefix="lib"
-               command="ar"
-               id="cdt.build.tool.solaris.gnu.lib">
-            <optionCategory
-                  owner="cdt.build.tool.solaris.gnu.lib"
-                  name="%OptionCategory.General"
-                  id="solaris.gnu.lib.category.general">
-            </optionCategory>
-            <option
-                  defaultValue="-r"
-                  name="Archiver Flags"
-                  category="solaris.gnu.lib.category.general"
-                  valueType="string"
-                  id="solaris.gnu.lib.flags">
-            </option>
-         </tool>
-      </target>
-   </extension>
+   
    <extension
          id="org.eclipse.cdt.ui.CSearchPage"
          name="CSearchPage"
Index: build/org/eclipse/cdt/ui/build/properties/BrowseEntryDialog.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/properties/BrowseEntryDialog.java
diff -N build/org/eclipse/cdt/ui/build/properties/BrowseEntryDialog.java
--- build/org/eclipse/cdt/ui/build/properties/BrowseEntryDialog.java	9 Jun 2003 19:22:19 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,179 +0,0 @@
-package org.eclipse.cdt.ui.build.properties;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
- * **********************************************************************/
-
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.utils.ui.controls.ControlFactory;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.*;
-
-public class BrowseEntryDialog extends Dialog {
-	// String constants
-	private static final String PREFIX = "BuildPropertyCommon";	//$NON-NLS-1$
-	private static final String LABEL = PREFIX + ".label";	//$NON-NLS-1$
-	private static final String BROWSE = LABEL + ".browse";	//$NON-NLS-1$
-
-	/**
-	 * The title of the dialog.
-	 */
-	private String title = "";
-
-	/**
-	 * The message to display, or <code>null</code> if none.
-	 */
-	private String message = "";
-
-	/**
-	 * The input value; the empty string by default.
-	 */
-	private String value = "";
-
-	/**
-	 * Error message label widget.
-	 */
-	private Label errorMessageLabel;
-
-	// Widgets
-	private Button btnBrowse = null;
-	private Button btnOK = null;
-	private Text text = null;
-
-	/**
-	 * Creates an input dialog with OK, Cancel, and a Browse button.
-	 * 
-	 * @param shell the parent shell
-	 * @param dialogTitle the title of the dialog or <code>null</code> if none
-	 * @param dialogMessage the dialog message, or <code>null</code> if none
-	 * @param initialValue the initial input value, or <code>null</code> if none
-	 * (equivalent to the empty string)
-	 */
-	public BrowseEntryDialog(Shell shell, String dialogTitle, String dialogMessage, String initialValue) {
-		super(shell);
-		// We are editing the value argument if it is not an empty string
-		if (dialogTitle != null) {
-			title = dialogTitle;
-		}
-		// Cache the message to be shown in the label
-		if (dialogMessage != null) {
-			message = dialogMessage;
-		}
-		// Value for the text widget
-		if (initialValue != null) {
-			value = initialValue;
-		}
-	}
-
-	/* (non-Javadoc)
-	 * Method declared on Dialog.
-	 */
-	protected void buttonPressed(int buttonId) {
-		if (buttonId == IDialogConstants.OK_ID) {
-			value = text.getText().trim();
-		} else {
-			value = null;
-		}
-		super.buttonPressed(buttonId);
-	}
-
-	/* (non-Javadoc)
-	 * Method declared in Window.
-	 */
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		if (title != null)
-			shell.setText(title);
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = ControlFactory.createComposite(parent, 4);
-
-		// Create the label
-		if (message != null) {
-			Label label = new Label(composite, SWT.WRAP);
-			label.setText(message);
-			GridData gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER);
-			gd.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
-			gd.horizontalSpan = 4;
-			label.setLayoutData(gd);
-			label.setFont(parent.getFont());
-		}
-		
-		text = new Text(composite, SWT.SINGLE | SWT.BORDER);
-		GridData gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
-		gd.horizontalSpan = 3;
-		text.setLayoutData(gd);
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				updateButtonState();
-			}
-		});
-		
-		// Instantiate the browse button
-		btnBrowse = ControlFactory.createPushButton(composite, CUIPlugin.getResourceString(BROWSE));
-		setButtonLayoutData(btnBrowse);
-		btnBrowse.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent e) {
-				handleBrowsePressed();
-			}
-		});
-
-		return composite;
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		// create OK and Cancel buttons by default
-		btnOK = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-
-		text.setFocus();
-		if (value != null) {
-			text.setText(value);
-		}
-		updateButtonState();
-	}
-
-	protected String getValue() {
-		return value;
-	}
-
-	protected void handleBrowsePressed() {
-		// Popup a file browser widget
-		DirectoryDialog dialog = new DirectoryDialog(getShell());
-		// Create a hint if text widget contains value
-		String widgetText; 
-		if ((widgetText = text.getText().trim()).length() > 0) {
-			dialog.setFilterPath(widgetText);
-		} 
-		// Open the selection dialog and populate the widget 
-		String directory;
-		if ((directory = dialog.open()) != null) {
-			 /* 
-			  * TODO: Convert the dialog to the proper format for platform (i.e.
-			  * if platform.pathStyle == Platform.POSIX then swap \\ to / )
-			  */
-			 text.setText(directory.trim());
-			 updateButtonState();
-		}
-	}
-
-	protected void updateButtonState() {
-		if (btnOK != null)
-			btnOK.setEnabled(text.getText().trim().length() > 0);
-	}
-}
Index: build/org/eclipse/cdt/ui/build/properties/BuildOptionComboFieldEditor.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/properties/BuildOptionComboFieldEditor.java
diff -N build/org/eclipse/cdt/ui/build/properties/BuildOptionComboFieldEditor.java
--- build/org/eclipse/cdt/ui/build/properties/BuildOptionComboFieldEditor.java	11 Aug 2003 17:33:10 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,116 +0,0 @@
-package org.eclipse.cdt.ui.build.properties;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
-***********************************************************************/
-
-import org.eclipse.cdt.utils.ui.controls.ControlFactory;
-import org.eclipse.jface.preference.FieldEditor;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-public class BuildOptionComboFieldEditor extends FieldEditor {
-
-	// Widgets and bookeeping variables
-	private Combo optionSelector;
-	private String [] options = new String[0];
-	private String selected; 
-	
-	/**
-	 * @param name
-	 * @param label
-	 * @param opts
-	 * @param sel
-	 * @param parent
-	 */
-	public BuildOptionComboFieldEditor (String name, String label, String [] opts, String sel, Composite parent) {
-		init(name, label);
-		options = opts;
-		selected = sel;
-		createControl(parent);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#adjustForNumColumns(int)
-	 */
-	protected void adjustForNumColumns(int numColumns) {
-		// For now grab the excess space
-		GridData gd = (GridData)optionSelector.getLayoutData();
-		gd.horizontalSpan = numColumns - 1;
-		gd.grabExcessHorizontalSpace = true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int)
-	 */
-	protected void doFillIntoGrid(Composite parent, int numColumns) {
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = numColumns;
-		parent.setLayoutData(gd);
-		
-		// Add the label
-		Label label = getLabelControl(parent);
-		GridData labelData = new GridData();
-		labelData.horizontalSpan = 1;
-		labelData.grabExcessHorizontalSpace = false;
-		label.setLayoutData(labelData);
-		
-		// Now add the combo selector
-		optionSelector = ControlFactory.createSelectCombo(parent, options, selected);
-		GridData selectorData = (GridData) optionSelector.getLayoutData();
-		selectorData.horizontalSpan = numColumns - 1;
-		selectorData.grabExcessHorizontalSpace = true;
-		optionSelector.setLayoutData(selectorData);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doLoad()
-	 */
-	protected void doLoad() {
-		// Retrieve the option string from the store
-		String values = getPreferenceStore().getString(getPreferenceName());
-		
-		// Convert it to a string array
-		options = BuildToolsSettingsStore.parseString(values);
-		optionSelector.removeAll();
-		optionSelector.setItems(options);
-		
-		// Set the index of selection in the combo box
-		int index = optionSelector.indexOf(selected);
-		optionSelector.select(index >= 0 ? index : 0);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doLoadDefault()
-	 */
-	protected void doLoadDefault() {
-		doLoad();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doStore()
-	 */
-	protected void doStore() {
-		// Save the selected item in the store
-		int index = optionSelector.getSelectionIndex();
-		String selected = index == -1 ? new String() : optionSelector.getItem(index);
-		getPreferenceStore().setValue(getPreferenceName(), selected);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#getNumberOfControls()
-	 */
-	public int getNumberOfControls() {
-		// There is just the label from the parent and the combo
-		return 2;
-	}
-}
Index: build/org/eclipse/cdt/ui/build/properties/BuildOptionListFieldEditor.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/properties/BuildOptionListFieldEditor.java
diff -N build/org/eclipse/cdt/ui/build/properties/BuildOptionListFieldEditor.java
--- build/org/eclipse/cdt/ui/build/properties/BuildOptionListFieldEditor.java	11 Aug 2003 17:33:10 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,421 +0,0 @@
-package org.eclipse.cdt.ui.build.properties;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
- * **********************************************************************/
-
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.utils.ui.controls.ControlFactory;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.preference.FieldEditor;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-
-public class BuildOptionListFieldEditor extends FieldEditor {
-	// Label constants
-	private static final String TITLE = "BuildPropertyCommon.label.title";	//$NON-NLS-1$
-	private static final String NEW = "BuildPropertyCommon.label.new"; //$NON-NLS-1$
-	private static final String REMOVE = "BuildPropertyCommon.label.remove"; //$NON-NLS-1$
-	private static final String UP = "BuildPropertyCommon.label.up"; //$NON-NLS-1$
-	private static final String DOWN = "BuildPropertyCommon.label.down"; //$NON-NLS-1$
-
-	// UI constants
-	private static final int VERTICAL_DIALOG_UNITS_PER_CHAR = 8;
-	private static final int HORIZONTAL_DIALOG_UNITS_PER_CHAR = 4;
-	private static final int LIST_HEIGHT_IN_CHARS = 10;
-	private static final int LIST_HEIGHT_IN_DLUS = 
-		LIST_HEIGHT_IN_CHARS * VERTICAL_DIALOG_UNITS_PER_CHAR;
-
-	// The top-level control for the field editor.
-	private Composite top;
-	// The list of tags.
-	private List list;
-
-	// The group control for the list and button composite
-	private Group controlGroup;
-	
-	private String fieldName;
-	private SelectionListener selectionListener;
-
-	// The button for adding the contents of the text field to the list
-	private Button addButton;
-	// The button for removing the currently-selected list item.
-	private Button removeButton;
-	// The button for swapping the currently selected item up
-	private Button upButton;
-	// The button for swapping the currently-selected list item down
-	private Button downButton;
-
-	/**
-	* @param name the name of the preference this field editor works on
-	* @param labelText the label text of the field editor
-	* @param parent the parent of the field editor's control
-	*/
-	public BuildOptionListFieldEditor (String name, String labelText, Composite parent) {
-		super(name, labelText, parent);
-		this.fieldName = labelText;
-	}
-
-	/* (non-Javadoc)
-	 * Event handler for the addButton widget
-	 */
-	protected void addPressed() {
-		setPresentsDefaultValue(false);
-		// Prompt user for a new item
-		String input = getNewInputObject();
-		
-		// Add it to the list
-		if (input != null) {
-			int index = list.getSelectionIndex();
-			if (index >= 0)
-				list.add(input, index + 1);
-			else
-				list.add(input, 0);
-			selectionChanged();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#adjustForNumColumns(int)
-	 */
-	protected void adjustForNumColumns(int numColumns) {
-		((GridData)top.getLayoutData()).horizontalSpan = numColumns;
-	}
-
-	/* (non-Javadoc)
-	 * Creates the Add, Remove, Up, and Down button in the button composite.
-	 *
-	 * @param container the box for the buttons
-	 */
-	private void createButtons(Composite container) {
-		addButton = createPushButton(container, CUIPlugin.getResourceString(NEW));
-		removeButton = createPushButton(container, CUIPlugin.getResourceString(REMOVE));
-		upButton = createPushButton(container, CUIPlugin.getResourceString(UP));
-		downButton = createPushButton(container, CUIPlugin.getResourceString(DOWN));
-	}
-
-	/**
-	 * @param items
-	 * @return
-	 */
-	protected String createList(String[] items) {
-		return BuildToolsSettingsStore.createList(items);
-	}
-
-	/* (non-Javadoc)
-	 * Rather than using the ControlFactory helper methods, this field
-	 * editor is using this helper method. Other field editors use a similar
-	 * set of method calls, so this seems like the safest approach 
-	 * 
-	 * @param parent the button composite
-	 * @param label the label to place in the button
-	 * @return
-	 */
-	private Button createPushButton(Composite parent, String label) {
-		Button button = new Button(parent, SWT.PUSH);
-		button.setText(label);
-		button.setFont(parent.getFont());
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.heightHint = convertVerticalDLUsToPixels(button, IDialogConstants.BUTTON_HEIGHT);
-		int widthHint = convertHorizontalDLUsToPixels(button, IDialogConstants.BUTTON_WIDTH);
-		data.widthHint = Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
-		button.setLayoutData(data);
-		button.addSelectionListener(getSelectionListener());
-		return button;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int)
-	 */
-	protected void doFillIntoGrid(Composite parent, int numColumns) {
-		top = parent;
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = numColumns;
-		top.setLayoutData(gd);
-
-		controlGroup = ControlFactory.createGroup(top, getLabelText(), 2);
-		GridData groupData = new GridData(GridData.FILL_HORIZONTAL);
-		groupData.horizontalSpan = numColumns;
-		controlGroup.setLayoutData(groupData);
-
-		// Make the list
-		list = new List(controlGroup, SWT.BORDER);
-	
-		// Create a grid data that takes up the extra space in the dialog and spans one column.
-		GridData listData = new GridData(GridData.FILL_HORIZONTAL);
-		listData.heightHint = 
-			convertVerticalDLUsToPixels(list, LIST_HEIGHT_IN_DLUS);
-		listData.horizontalSpan = 1;
-		
-		list.setLayoutData(listData);
-		list.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				selectionChanged();
-			}
-		});
-
-		list.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				list = null;
-			}
-		});
-		list.addMouseListener(new MouseAdapter() {
-			public void mouseDoubleClick(MouseEvent e) {
-				// Popup the editor on the selected item from the list
-				editSelection();
-			}
-		});
-
-		// Create a composite for the buttons
-		Composite buttonGroup = new Composite(controlGroup, SWT.NONE);
-		GridData buttonData = new GridData();
-		buttonData.horizontalSpan = 1;
-		buttonData.verticalAlignment = GridData.BEGINNING;
-		buttonGroup.setLayoutData(buttonData);
-	
-		GridLayout buttonLayout = new GridLayout();
-		buttonLayout.numColumns = 1;
-		buttonLayout.marginHeight = 0;
-		buttonLayout.marginWidth = 0;
-		buttonGroup.setLayout(buttonLayout);
-		
-		buttonGroup.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				addButton = null;
-				removeButton = null;
-				upButton = null;
-				downButton = null;
-			}
-		});
-	
-		// Create the buttons
-		createButtons(buttonGroup);
-	}
-
-	/* (non-Javadoc)
-	 * Creates a selection listener that handles the selection events
-	 * for the button controls and single-click events in the list to 
-	 * trigger a selection change.
-	 */
-	public void createSelectionListener() {
-		selectionListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				Widget widget = event.widget;
-				if (widget == addButton) {
-					addPressed();
-				} else
-					if (widget == removeButton) {
-						removePressed();
-					} else
-						if (widget == upButton) {
-							upPressed();
-						} else
-							if (widget == downButton) {
-								downPressed();
-							} else
-								if (widget == list) {
-									selectionChanged();
-								}
-			}
-		};
-	}
-
-
-
-	/* (non-Javadoc)
-	 * Event handler for the down button
-	 */
-	protected void downPressed() {
-		swap(false);		
-	}
-
-	/* (non-Javadoc)
-	 * 
-	 */
-	protected void editSelection() {
-		// Edit the selection index
-		int index = list.getSelectionIndex();
-		if (index != -1) {
-			String selItem = list.getItem(index);
-			if (selItem != null) {
-				InputDialog dialog = new InputDialog(getShell(), CUIPlugin.getResourceString(TITLE), fieldName, selItem, null);
-				String newItem = null;
-				if (dialog.open() == InputDialog.OK) {
-					newItem = dialog.getValue();
-					if (newItem != null && !newItem.equals(selItem)) {
-						list.setItem(index, newItem);
-						selectionChanged();
-					}
-				}
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doLoad()
-	 */
-	protected void doLoad() {
-		if (list != null) {
-			String s = getPreferenceStore().getString(getPreferenceName());
-			String[] array = parseString(s);
-			for (int i = 0; i < array.length; i++){
-				list.add(array[i]);
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doLoadDefault()
-	 */
-	protected void doLoadDefault() {
-		if (list != null) {
-			list.removeAll();
-			String s = getPreferenceStore().getDefaultString(getPreferenceName());
-			String[] array = parseString(s);
-			for (int i = 0; i < array.length; i++){
-				list.add(array[i]);
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doStore()
-	 */
-	protected void doStore() {
-		String s = createList(list.getItems());
-		if (s != null)
-			getPreferenceStore().setValue(getPreferenceName(), s);
-	}
-
-	protected String getNewInputObject() {
-		// Create a dialog to prompt for a new symbol or path
-		InputDialog dialog = new InputDialog(getShell(), CUIPlugin.getResourceString(TITLE), fieldName, new String(), null);
-		String input = null;
-		if (dialog.open() == InputDialog.OK) {
-			input = dialog.getValue();
-		}
-		return input.length() == 0 ? null : input;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#getNumberOfControls()
-	 */
-	public int getNumberOfControls() {
-		// The group control has a list and buttons so we want it to get at
-		// least 2 columns to display in.
-		return 2;
-	}
-
-	/* (non-Javadoc)
-	 * Returns this field editor's selection listener.
-	 * The listener is created if nessessary.
-	 *
-	 * @return the selection listener
-	 */
-	private SelectionListener getSelectionListener() {
-		if (selectionListener == null)
-			createSelectionListener();
-		return selectionListener;
-	}
-
-	/* (non-Javadoc)
-	 * Returns this field editor's shell.
-	 * 
-	 * @return the shell
-	 */
-	protected Shell getShell() {
-		if (addButton == null)
-			return null;
-		return addButton.getShell();
-	}
-
-	/* (non-Javadoc)
-	 * @param stringList
-	 * @return
-	 */
-	protected String[] parseString(String stringList) {
-		return BuildToolsSettingsStore.parseString(stringList);
-	}
-
-	/* (non-Javadoc)
-	 * Event handler for the removeButton selected event
-	 */
-	protected void removePressed() {
-		// Remove the selected item from the list
-		setPresentsDefaultValue(false);
-		int index = list.getSelectionIndex();
-		if (index >= 0) {
-			list.remove(index);
-			selectionChanged();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * Clean up the list and button control states after the event 
-	 * handlers fire. 
-	 */
-	protected void selectionChanged() {
-		int index = list.getSelectionIndex();
-		int size = list.getItemCount();
-
-		// Enable the remove button if there is at least one item in the list
-		removeButton.setEnabled(index >= 0);
-		// Enable the up button IFF there is more than 1 item and selection index is not first item
-		upButton.setEnabled(size > 1 && index > 0);
-		// Enable the down button IFF there is more than 1 item and selection index not last item
-		downButton.setEnabled(size > 1 && index >= 0 && index < size - 1);
-	}
-
-	/* (non-Javadoc)
-	 * Swaps the location of two list elements. If the argument is <code>true</code> 
-	 * the list item is swapped with the item preceeding it in the list. Otherwise 
-	 *  it is swapped with the item following it.
-	 * 
-	 * @param moveUp
-	 */
-	private void swap(boolean moveUp) {
-		setPresentsDefaultValue(false);
-		int index = list.getSelectionIndex();
-		int target = moveUp ? index - 1 : index + 1;
-
-		if (index >= 0) {
-			String[] selection = list.getSelection();
-			Assert.isTrue(selection.length == 1);
-			list.remove(index);
-			list.add(selection[0], target);
-			list.setSelection(target);
-		}
-		selectionChanged();
-	}
-
-	/* (non-Javadoc)
-	 * Event handler for the up button. It simply swaps the selected 
-	 * item with the list item above it.
-	 */
-	protected void upPressed() {
-		swap(true);
-	}
-}
Index: build/org/eclipse/cdt/ui/build/properties/BuildPropertyPage.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/properties/BuildPropertyPage.java
diff -N build/org/eclipse/cdt/ui/build/properties/BuildPropertyPage.java
--- build/org/eclipse/cdt/ui/build/properties/BuildPropertyPage.java	11 Sep 2003 14:46:18 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,536 +0,0 @@
-package org.eclipse.cdt.ui.build.properties;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
- * **********************************************************************/
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.IManagedBuildInfo;
-import org.eclipse.cdt.core.build.managed.IOptionCategory;
-import org.eclipse.cdt.core.build.managed.ITarget;
-import org.eclipse.cdt.core.build.managed.ManagedBuildManager;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.utils.ui.controls.ControlFactory;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.preference.IPreferencePageContainer;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchPropertyPage;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-public class BuildPropertyPage extends PropertyPage implements IWorkbenchPropertyPage, IPreferencePageContainer {
-	/*
-	 * String constants
-	 */
-	private static final String PREFIX = "BuildPropertyPage";	//$NON-NLS-1$
-	private static final String LABEL = PREFIX + ".label";	//$NON-NLS-1$
-	private static final String NAME_LABEL = LABEL + ".NameText";	//$NON-NLS-1$
-	private static final String BUILD_TOOLS_LABEL = LABEL + ".BuildToolTree";	//$NON-NLS-1$
-	private static final String PLATFORM_LABEL = LABEL + ".Platform";	//$NON-NLS-1$
-	private static final String CONFIG_LABEL = LABEL + ".Configuration";	//$NON-NLS-1$
-	private static final String ACTIVE_LABEL = LABEL + ".Active";	//$NON-NLS-1$
-	private static final String SETTINGS_LABEL = LABEL + ".Settings";	//$NON-NLS-1$
-	private static final String TREE_LABEL = LABEL + ".ToolTree";	//$NON-NLS-1$
-	private static final String OPTIONS_LABEL = LABEL + ".ToolOptions";	//$NON-NLS-1$
-	private static final String ADD_CONF = LABEL + ".AddConfButton";	//$NON-NLS-1$
-	private static final String TIP = PREFIX + ".tip";	//$NON-NLS-1$
-	private static final String PLAT_TIP = TIP + ".platform";	//$NON-NLS-1$
-	private static final String CONF_TIP = TIP + ".config";	//$NON-NLS-1$
-	private static final String ADD_TIP = TIP + ".addconf";	//$NON-NLS-1$
-	private static final String MANAGE_TITLE = PREFIX + ".manage.title";	//$NON-NLS-1$
-	private static final int[] DEFAULT_SASH_WEIGHTS = new int[] { 20, 30 };
-	
-	/*
-	 * Dialog widgets
-	 */
-	private Combo targetSelector;
-	private Combo configSelector;
-	private Button manageConfigs;
-	private TreeViewer optionList;
-	private SashForm sashForm;
-	private Group sashGroup;
-	private Composite settingsPageContainer;
-	private ScrolledComposite containerSC;
-				 
-	/*
-	 * Bookeeping variables
-	 */
-	private ITarget [] targets;
-	private ITarget selectedTarget;
-	private IConfiguration [] configurations;
-	private IConfiguration selectedConfiguration;
-	private BuildToolSettingsPage currentSettingsPage;
-	private Map configToPageListMap;
-	private BuildToolsSettingsStore settingsStore;
-	private IOptionCategory selectedCategory;
-	private Point lastShellSize;
-
-	/**
-	 * The minimum page size; 200 by 200 by default.
-	 *
-	 * @see #setMinimumPageSize
-	 */
-	private Point minimumPageSize = new Point(200, 200);
-
-	/**
-	 * Layout for the page container.
-	 *
-	 */
-	private class PageLayout extends Layout {
-		public void layout(Composite composite, boolean force) {
-			Rectangle rect = composite.getClientArea();
-			Control[] children = composite.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				children[i].setSize(rect.width, rect.height);
-			}
-		}
-		public Point computeSize(Composite composite, int wHint, int hHint,	boolean force) {
-			if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) {
-				return new Point(wHint, hHint);
-			}
-			int x = minimumPageSize.x;
-			int y = minimumPageSize.y;
-
-			Control[] children = composite.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				Point size = children[i].computeSize(SWT.DEFAULT, SWT.DEFAULT, force);
-				x = Math.max(x, size.x);
-				y = Math.max(y, size.y);
-			}
-			if (wHint != SWT.DEFAULT) {
-				x = wHint;
-			}
-			if (hHint != SWT.DEFAULT) {
-				y = hHint;
-			}
-			return new Point(x, y);
-		}
-	}
-		
-	/**
-	 * Default constructor
-	 */
-	public BuildPropertyPage() {
-		configToPageListMap = new HashMap();
-	}
-
-	protected Control createContents(Composite parent)  {
-		// Initialize the key data
-		targets = ManagedBuildManager.getTargets(getProject());
-
-		// Create the container we return to the property page editor
-		Composite composite = ControlFactory.createComposite(parent, 1);
-		GridData gd;
-
-		// Add a config selection area
-		Group configGroup = ControlFactory.createGroup(composite, CUIPlugin.getResourceString(ACTIVE_LABEL), 1);
-		gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gd.grabExcessHorizontalSpace = true;
-		configGroup.setLayoutData(gd);
-		// Use the form layout inside the group composite
-		FormLayout form = new FormLayout();
-		form.marginHeight = 5;
-		form.marginWidth = 5;
-		configGroup.setLayout(form);
-		
-		Label platformLabel = ControlFactory.createLabel(configGroup, CUIPlugin.getResourceString(PLATFORM_LABEL));
-		targetSelector = ControlFactory.createSelectCombo(configGroup, getPlatformNames(), null); 
-		targetSelector.addListener(SWT.Selection, new Listener () {
-			public void handleEvent(Event e) {
-				handleTargetSelection();
-			}
-		});
-		targetSelector.setToolTipText(CUIPlugin.getResourceString(PLAT_TIP));
-		Label configLabel = ControlFactory.createLabel(configGroup, CUIPlugin.getResourceString(CONFIG_LABEL));
-		configSelector = new Combo(configGroup, SWT.READ_ONLY|SWT.DROP_DOWN);
-		configSelector.addListener(SWT.Selection, new Listener () {
-			public void handleEvent(Event e) {
-				handleConfigSelection();
-			}
-		});
-		configSelector.setToolTipText(CUIPlugin.getResourceString(CONF_TIP));
-		manageConfigs = ControlFactory.createPushButton(configGroup, CUIPlugin.getResourceString(ADD_CONF));
-		manageConfigs.setToolTipText(CUIPlugin.getResourceString(ADD_TIP));
-		manageConfigs.addSelectionListener(new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-				handleManageConfig();
-			}
-		});
-		// Now do the form layout for the widgets
-		FormData fd = new FormData();
-		// Anchor the labels in the centre of their respective combos
-		fd.top = new FormAttachment(targetSelector, 0, SWT.CENTER);
-		platformLabel.setLayoutData(fd);
-		fd = new FormData();
-		fd.top = new FormAttachment(configSelector, 0, SWT.CENTER);
-		configLabel.setLayoutData(fd);
-		// Anchor platform combo left to the config selector
-		fd = new FormData();
-		fd.left = new FormAttachment(configSelector, 0, SWT.LEFT);
-		fd.right = new FormAttachment(100, 0);
-		targetSelector.setLayoutData(fd);
-		// Anchor button right to combo and left to group
-		fd = new FormData();
-		fd.top = new FormAttachment(configSelector, 0, SWT.CENTER);
-		fd.right = new FormAttachment(100,0);
-		manageConfigs.setLayoutData(fd);
-		// Anchor config combo left 5 pixels from label, top 5% below the centre, and right to the button
-		fd = new FormData();
-		fd.left = new FormAttachment(configLabel, 5); 
-		fd.top = new FormAttachment(55,0);
-		fd.right = new FormAttachment(manageConfigs, -5 , SWT.LEFT);
-		configSelector.setLayoutData(fd);		
-
-		// Create the sash form
-		sashGroup = ControlFactory.createGroup(composite, CUIPlugin.getResourceString(SETTINGS_LABEL), 1);
-		sashGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
-		sashForm = new SashForm(sashGroup, SWT.NONE);
-		sashForm.setOrientation(SWT.HORIZONTAL);
-		sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = 5;
-		layout.marginWidth = 5;
-		sashForm.setLayout(layout);
-		
-		createSelectionArea(sashForm);
-		createEditArea(sashForm);
-		initializeSashForm();
-
-		// Do not call this until the widgets are constructed		
-		handleTargetSelection();
-		return composite;
-	}
-	
-	/* (non-Javadoc)
-	 * Add the tabs relevant to the project to edit area tab folder.
-	 */
-	protected void createEditArea(Composite parent) {
-		containerSC = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
-		containerSC.setExpandHorizontal(true);
-		containerSC.setExpandVertical(true);
-		
-		// Add a container for the build settings page
-		settingsPageContainer = new Composite(containerSC, SWT.NULL);
-		settingsPageContainer.setLayout(new PageLayout());
-
-		containerSC.setContent(settingsPageContainer);
-		containerSC.setMinSize(settingsPageContainer.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-		settingsPageContainer.layout();
-	}
-	
-	protected void createSelectionArea (Composite parent) {
-		// Create a label and list viewer
-		Composite composite = ControlFactory.createComposite(parent, 1);
-		optionList = new TreeViewer(composite, SWT.SINGLE|SWT.H_SCROLL|SWT.V_SCROLL|SWT.BORDER);
-		optionList.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				handleOptionSelection();
-			}
-		});
-		optionList.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-		optionList.setLabelProvider(new ToolListLabelProvider());
-	}
-
-	/**
-	 * Method displayOptionsForTool.
-	 * @param toolReference
-	 */
-	private void displayOptionsForCategory(IOptionCategory category) {
-		// Do nothing if the selected category is is unchanged
-		if (category == selectedCategory) {
-			return;
-		}
-		selectedCategory = category;
-		
-		// Cache the current build setting page
-		BuildToolSettingsPage oldPage = currentSettingsPage;
-		currentSettingsPage = null;
-		
-		// Create a new settings page if necessary
-		List pages = getPagesForConfig();
-		ListIterator iter = pages.listIterator();
-		while (iter.hasNext()) {
-			BuildToolSettingsPage page = (BuildToolSettingsPage) iter.next();
-			if (page.getCategory().equals(category)) {
-				currentSettingsPage = page;
-				break;
-			}
-		}
-		if (currentSettingsPage == null) {
-			currentSettingsPage = new BuildToolSettingsPage(selectedConfiguration, category);
-			pages.add(currentSettingsPage);
-			currentSettingsPage.setContainer(this);
-			if (currentSettingsPage.getControl() == null) {
-				currentSettingsPage.createControl(settingsPageContainer);
-			}
-		}
-		
-		// Make all the other pages invisible
-		Control[] children = settingsPageContainer.getChildren();
-		Control currentControl = currentSettingsPage.getControl();
-		for (int i = 0; i < children.length; i++) {
-			if (children[i] != currentControl)
-				children[i].setVisible(false);
-		}
-		currentSettingsPage.setVisible(true);
-		if (oldPage != null)
-			oldPage.setVisible(false);
-
-		// Set the size of the scrolled area
-		containerSC.setMinSize(currentSettingsPage.computeSize());
-		settingsPageContainer.layout();
-	}
-
-	/* (non-Javadoc)
-	 * @return an array of names for the configurations defined for the chosen target
-	 */
-	private String [] getConfigurationNames () {
-		String [] names = new String[configurations.length];
-		for (int index = 0; index < configurations.length; ++index) {
-			names[index] = configurations[index].getName();
-		}
-		return names;
-	}
-	
-	/**
-	 * @return
-	 */
-	protected Point getLastShellSize() {
-		if (lastShellSize == null) {
-			Shell shell = getShell();
-			if (shell != null)
-				lastShellSize = shell.getSize();
-		}
-		return lastShellSize;
-	}
-
-	private List getPagesForConfig() {
-		List pages = (List) configToPageListMap.get(selectedConfiguration.getId());
-		if (pages == null) {
-			pages = new ArrayList();
-			configToPageListMap.put(selectedConfiguration.getId(), pages);
-		}
-		return pages;
-	}
-	
-	private String [] getPlatformNames() {
-		String [] names = new String[targets.length];
-		for (int index = 0; index < targets.length; ++index) {
-			names[index] = targets[index].getName();
-		}
-		return names;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.IPreferencePageContainer#getPreferenceStore()
-	 */
-	public IPreferenceStore getPreferenceStore()
-	{
-		return settingsStore;
-	}
-
-	private IProject getProject() {
-		Object element= getElement();
-		if (element != null && element instanceof IProject) {
-			return (IProject)element;
-		}
-		return null;
-	}
-
-	/**
-	 * @return
-	 */
-	public IConfiguration getSelectedConfiguration() {
-		return selectedConfiguration;
-	}
-
-	/*
-	 * Event Handlers
-	 */
-	private void handleConfigSelection () {
-		// If there is nothing in config selection widget just bail
-		if (configSelector.getItemCount() == 0) return;
-		
-		// Cache the selected config 
-		selectedConfiguration = configurations[configSelector.getSelectionIndex()];
-		
-		// Set the content provider for the list viewer
-		ToolListContentProvider provider = new ToolListContentProvider();
-		optionList.setContentProvider(provider);
-		optionList.setInput(selectedConfiguration);
-		optionList.expandAll();
-		
-		// Recreate the settings store for the configuration
-		settingsStore = new BuildToolsSettingsStore(selectedConfiguration);
-		
-		// Select the first option in the list
-		Object[] elements = provider.getElements(selectedConfiguration);
-		Object primary = elements.length > 0 ? elements[0] : null;
-		if (primary != null) {
-			optionList.setSelection(new StructuredSelection(primary));
-		}
-	}
-
-	// Event handler for the manage configuration button event
-	private void handleManageConfig () {
-		ManageConfigDialog manageDialog = new ManageConfigDialog(getShell(), CUIPlugin.getResourceString(MANAGE_TITLE), selectedTarget);
-		if (manageDialog.open() == ManageConfigDialog.OK) {
-			// Check to see if any configurations have to be deleted
-			ArrayList deleteMe = manageDialog.getDeletedConfigs();
-			ListIterator iter = deleteMe.listIterator();
-			while (iter.hasNext()) {
-			}
-			return;
-		}
-	}
-
-	private void handleOptionSelection() {
-		// Get the selection from the tree list
-		IStructuredSelection selection = (IStructuredSelection) optionList.getSelection();
-	
-		// Set the option page based on the selection
-		Object element = selection.getFirstElement();
-		if (element instanceof IOptionCategory) {
-			displayOptionsForCategory((IOptionCategory)element);
-		}
-	}
-
-	private void handleTargetSelection() {
-		// Is there anything in the selector widget
-		if (targetSelector.getItemCount() == 0) {
-			manageConfigs.setEnabled(false);
-			return;
-		} 
-
-		// Enable the manage button
-		manageConfigs.setEnabled(true);
-
-		// Cache the platform at the selection index
-		selectedTarget = targets[targetSelector.getSelectionIndex()];
-		
-		// Update the contents of the configuration widget
-		populateConfigurations();		
-	}
-
-	/* 
-	 *  (non-javadoc)
-	 * Initialize the relative weights (widths) of the 2 sides of the sash.
-	 */
-	protected void initializeSashForm() {
-		sashForm.setWeights(DEFAULT_SASH_WEIGHTS);
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
-	 */
-	protected void performDefaults() {
-		// Empty the page list
-		List pages = getPagesForConfig();
-		pages.clear();
-		
-		// Get the build manager to reset build info for project
-		ManagedBuildManager.resetConfiguration(getProject(), getSelectedConfiguration());
-		
-		// Recreate the settings store for the configuration
-		settingsStore = new BuildToolsSettingsStore(getSelectedConfiguration());
-
-		// Reset the category selection and run selection event handler
-		selectedCategory = null;
-		handleOptionSelection();
-	}
-
-	/* 
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		// Force each settings page to update
-		List pages = getPagesForConfig();
-		ListIterator iter = pages.listIterator();
-		while (iter.hasNext()) {
-			BuildToolSettingsPage page = (BuildToolSettingsPage) iter.next();
-			page.performOk();
-		}
-		
-		// Write out the build model info
-		ManagedBuildManager.setDefaultConfiguration(getProject(), getSelectedConfiguration());
-		ManagedBuildManager.saveBuildInfo(getProject());
-		return true;
-	}
-	
-	private void populateConfigurations() {
-		// If the config select widget is not there yet, just stop		
-		if (configSelector == null) return;
-		
-		// Find the configurations defined for the platform
-		configurations = selectedTarget.getConfigurations();
-		
-		// Clear and replace the contents of the selector widget
-		configSelector.removeAll();
-		configSelector.setItems(getConfigurationNames());
-		
-		// Make sure the active configuration is selected
-		IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(getProject());
-		IConfiguration defaultConfig = info.getDefaultConfiguration(selectedTarget);
-		int index = configSelector.indexOf(defaultConfig.getName());
-		configSelector.select(index == -1 ? 0 : index);
-		handleConfigSelection();
-	}
-	
-	/**
-	 * @see org.eclipse.jface.preference.IPreferencePageContainer#updateButtons()
-	 */
-	public void updateButtons() {
-	}
-	/**
-	 * @see org.eclipse.jface.preference.IPreferencePageContainer#updateMessage()
-	 */
-	public void updateMessage() {
-	}
-	/**
-	 * @see org.eclipse.jface.preference.IPreferencePageContainer#updateTitle()
-	 */
-	public void updateTitle() {
-	}
-}
\ No newline at end of file
Index: build/org/eclipse/cdt/ui/build/properties/BuildToolSettingsPage.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/properties/BuildToolSettingsPage.java
diff -N build/org/eclipse/cdt/ui/build/properties/BuildToolSettingsPage.java
--- build/org/eclipse/cdt/ui/build/properties/BuildToolSettingsPage.java	11 Aug 2003 17:33:10 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,145 +0,0 @@
-package org.eclipse.cdt.ui.build.properties;
-
-import org.eclipse.cdt.core.build.managed.BuildException;
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.IOption;
-import org.eclipse.cdt.core.build.managed.IOptionCategory;
-import org.eclipse.cdt.core.build.managed.ManagedBuildManager;
-import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.StringFieldEditor;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * @author sevoy
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public class BuildToolSettingsPage extends FieldEditorPreferencePage {
-
-	// Variables to help map this page back to an option category and tool
-	private IConfiguration configuration;
-	private IOptionCategory category;
-	
-	BuildToolSettingsPage(IConfiguration configuration, IOptionCategory category) {
-		// Must be a grid layout and we don't want another set of buttons
-		super(GRID);
-		noDefaultAndApplyButton();
-
-		// Cache the option category this page is created for
-		this.configuration = configuration;
-		this.category = category;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#computeSize()
-	 */
-	public Point computeSize() {
-		// TODO Auto-generated method stub
-		return super.computeSize();
-	}
-	
-	/**
-	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
-	 */
-	protected void createFieldEditors() {
-		// Get the preference store for the build settings
-		IPreferenceStore settings = getPreferenceStore();
-		setPreferenceStore(settings);
-
-		// Iterate over the options in the category and create a field editor for each
-		IOption[] options = category.getOptions(configuration);
-		for (int index = 0; index < options.length; ++index) {
-			// Get the option
-			IOption opt = options[index];
-			// Figure out which type the option is and add a proper field editor for it
-			switch (opt.getValueType()) {
-				case IOption.STRING :
-					StringFieldEditor stringField = new StringFieldEditor(opt.getId(), opt.getName(), getFieldEditorParent());
-					addField(stringField);
-					break;
-				case IOption.BOOLEAN :
-					BooleanFieldEditor booleanField = new BooleanFieldEditor(opt.getId(), opt.getName(), getFieldEditorParent());
-					addField(booleanField);
-					break;
-				case IOption.ENUMERATED :
-					String sel;
-					try {
-						sel = opt.getSelectedEnum();
-					} catch (BuildException e) {
-						// If we get this exception, then the option type is wrong
-						break;
-					}
-					BuildOptionComboFieldEditor comboField = new BuildOptionComboFieldEditor(opt.getId(), opt.getName(), opt.getApplicableValues(), sel, getFieldEditorParent());
-					addField(comboField); 
-					break;
-				case IOption.STRING_LIST :
-				case IOption.INCLUDE_PATH :
-				case IOption.PREPROCESSOR_SYMBOLS :
-				case IOption.LIBRARIES :
-					BuildOptionListFieldEditor listField = new BuildOptionListFieldEditor(opt.getId(), opt.getName(), getFieldEditorParent());
-					addField(listField); 
-					break;
-				default :
-					SummaryFieldEditor summaryField = new SummaryFieldEditor(opt.getId(), opt.getName(), category.getTool(), getFieldEditorParent());
-					addField(summaryField);
-					break;
-//				default :
-//					break;
-			}
-		}
-	}
-
-	/**
-	 * @return the option category the page was created for
-	 */
-	public IOptionCategory getCategory() {
-		return category;
-	}
-
-	/**
-	 * @see IPreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		// Write the field editor contents out to the preference store
-		boolean ok = super.performOk();
-
-		// Write the preference store values back to the build model
-		IOption[] options = category.getOptions(configuration);
-		for (int i = 0; i < options.length; i++) {
-			IOption option = options[i];
-
-			// Transfer value from preference store to options
-			switch (option.getValueType()) {
-				case IOption.BOOLEAN :
-					boolean boolVal = getPreferenceStore().getBoolean(option.getId());
-					ManagedBuildManager.setOption(configuration, option, boolVal);
-					break;
-				case IOption.ENUMERATED :
-					String enumVal = getPreferenceStore().getString(option.getId());
-					ManagedBuildManager.setOption(configuration, option, enumVal);
-					break;
-				case IOption.STRING :
-					String strVal = getPreferenceStore().getString(option.getId());
-					ManagedBuildManager.setOption(configuration, option, strVal);
-					break;
-				case IOption.STRING_LIST :
-				case IOption.INCLUDE_PATH :
-				case IOption.PREPROCESSOR_SYMBOLS :
-				case IOption.LIBRARIES :
-					String listStr = getPreferenceStore().getString(option.getId());
-					String[] listVal = BuildToolsSettingsStore.parseString(listStr);
-					ManagedBuildManager.setOption(configuration, option, listVal);
-					break;
-				default :
-					break;
-			}			
-		}
-		
-		return ok;
-	}
-}
Index: build/org/eclipse/cdt/ui/build/properties/BuildToolsSettingsStore.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/properties/BuildToolsSettingsStore.java
diff -N build/org/eclipse/cdt/ui/build/properties/BuildToolsSettingsStore.java
--- build/org/eclipse/cdt/ui/build/properties/BuildToolsSettingsStore.java	20 Aug 2003 17:52:23 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,433 +0,0 @@
-package org.eclipse.cdt.ui.build.properties;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
- * **********************************************************************/
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.cdt.core.build.managed.BuildException;
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.IOption;
-import org.eclipse.cdt.core.build.managed.IOptionCategory;
-import org.eclipse.cdt.core.build.managed.ITool;
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-
-public class BuildToolsSettingsStore implements IPreferenceStore {
-	public static final String DEFAULT_SEPERATOR = ";";
-
-	// List of listeners on the property store
-	private ListenerList listenerList;
-	private Map optionMap;
-	private boolean dirtyFlag;
-	private IConfiguration owner;
-	
-	public BuildToolsSettingsStore (IConfiguration config) {	
-		listenerList = new ListenerList();
-		dirtyFlag = false;
-		owner = config;
-			
-		// Now populate the options map
-		populateOptionMap();
-	}
-
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		listenerList.add(listener);
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#contains(java.lang.String)
-	 */
-	public boolean contains(String name) {
-		return getOptionMap().containsKey(name);
-	}
-
-	/**
-	 * Answers a <code>String</code> containing the strings passed in the 
-	 * argument separated by the DEFAULT_SEPERATOR
-	 * 
-	 * @param items An array of strings
-	 * @return 
-	 */
-	public static String createList(String[] items) {
-		StringBuffer path = new StringBuffer(""); //$NON-NLS-1$
-	
-		for (int i = 0; i < items.length; i++) {
-			path.append(items[i]);
-			if (i < (items.length - 1)) {
-				path.append(DEFAULT_SEPERATOR);
-			}
-		}
-		return path.toString();
-	}
-	
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#firePropertyChangeEvent(java.lang.String, java.lang.Object, java.lang.Object)
-	 */
-	public void firePropertyChangeEvent(String name, Object oldValue, Object newValue) {
-			Object[] listeners = listenerList.getListeners();
-			if (listeners.length > 0 && (oldValue == null || !oldValue.equals(newValue))) 
-			{
-				PropertyChangeEvent pe = new PropertyChangeEvent(this, name, oldValue, newValue);
-				for (int i = 0; i < listeners.length; ++i) 
-				{
-					IPropertyChangeListener l = (IPropertyChangeListener)listeners[i];
-					l.propertyChange( pe );
-				}
-			}
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#getBoolean(java.lang.String)
-	 */
-	public boolean getBoolean(String name) {
-		Object b = getOptionMap().get(name);
-		if (b instanceof Boolean)
-		{
-			return ((Boolean)b).booleanValue();
-		}
-		return false;
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultBoolean(java.lang.String)
-	 */
-	public boolean getDefaultBoolean(String name) {
-		return false;
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultDouble(java.lang.String)
-	 */
-	public double getDefaultDouble(String name) {
-		return 0;
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultFloat(java.lang.String)
-	 */
-	public float getDefaultFloat(String name) {
-		return 0;
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultInt(java.lang.String)
-	 */
-	public int getDefaultInt(String name) {
-		return 0;
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultLong(java.lang.String)
-	 */
-	public long getDefaultLong(String name) {
-		return 0;
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultString(java.lang.String)
-	 */
-	public String getDefaultString(String name) {
-		return new String();
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#getDouble(java.lang.String)
-	 */
-	public double getDouble(String name) {
-		return getDefaultDouble(name);
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#getFloat(java.lang.String)
-	 */
-	public float getFloat(String name) {
-		return getDefaultFloat(name);
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#getInt(java.lang.String)
-	 */
-	public int getInt(String name) {
-		return getDefaultInt(name);
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#getLong(java.lang.String)
-	 */
-	public long getLong(String name) {
-		return getDefaultLong(name);
-	}
-
-	/* (non-javadoc)
-	 * Answers the map containing the strings associated with each option 
-	 * ID.
-	 * 
-	 * @return
-	 */
-	private Map getOptionMap() {
-		if (optionMap == null) {
-			optionMap = new HashMap();
-		}
-		return optionMap;
-	}
-
-	private void getOptionsForCategory(IOptionCategory cat) {
-		IOptionCategory [] children = cat.getChildCategories();
-		// If there are child categories, add their options
-		for (int i = 0; i < children.length; ++i) {
-			getOptionsForCategory(children[i]);
-		}
-		// Else get the options for this category and add them to the map
-		IOption [] options = cat.getOptions(owner);
-		for (int j = 0; j < options.length; ++j) {
-			IOption opt = options[j];
-			String name = opt.getId();
-			Object value;
-			// Switch on the type of option
-			switch (opt.getValueType()) {
-				case IOption.BOOLEAN :
-					try {
-						value = new Boolean(opt.getBooleanValue());
-					} catch (BuildException e) {
-						// Exception occurs if there's an option value type mismatch
-						break;
-					}
-					getOptionMap().put(name, value);
-					break;
-
-				case IOption.ENUMERATED :
-					value = createList(opt.getApplicableValues());
-					getOptionMap().put(name, value);					
-					break;
-					
-				case IOption.STRING :
-					try {
-						value = opt.getStringValue();
-					} catch (BuildException e) {
-						break;
-					}
-					getOptionMap().put(name, value);
-					break;
-					
-				case IOption.STRING_LIST :
-					try {
-						value = createList(opt.getStringListValue());
-					} catch (BuildException e) {
-						break;
-					}
-					getOptionMap().put(name, value);
-					break;
-				case IOption.INCLUDE_PATH :
-					try {
-						value = createList(opt.getIncludePaths());
-					} catch (BuildException e) {
-						break;
-					}
-					getOptionMap().put(name, value);
-					break;
-				case IOption.PREPROCESSOR_SYMBOLS :
-					try {
-						value = createList(opt.getDefinedSymbols());
-					} catch (BuildException e) {
-						break;
-					}
-					getOptionMap().put(name, value);
-					break;
-				case IOption.LIBRARIES :
-					try {
-						value = createList(opt.getLibraries());
-					} catch (BuildException e) {
-						break;
-					}
-					getOptionMap().put(name, value);
-					break;
-				default :
-					break;
-			}
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#getString(java.lang.String)
-	 */
-	public String getString(String name) {
-		Object s = getOptionMap().get(name);
-
-		if ( s instanceof String )
-		{
-			return (String)s;
-		}
-		return getDefaultString(name);
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#isDefault(java.lang.String)
-	 */
-	public boolean isDefault(String name) {
-		return false;
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#needsSaving()
-	 */
-	public boolean needsSaving() {
-		return dirtyFlag;
-	}
-
-	public static String[] parseString(String stringList) {
-		StringTokenizer tokenizer = new StringTokenizer(stringList, BuildToolsSettingsStore.DEFAULT_SEPERATOR);
-		ArrayList list = new ArrayList();
-		while (tokenizer.hasMoreElements()) {
-			list.add(tokenizer.nextElement());
-		}
-		return (String[]) list.toArray(new String[list.size()]);
-	}
-
-	/**
-	 * 
-	 */
-	private void populateOptionMap() {
-		// Each configuration has a list of tools
-		ITool [] tools = owner.getTools();
-		for (int index = 0; index < tools.length; ++index) {
-			ITool tool = tools[index];
-			IOptionCategory cat = tool.getTopOptionCategory();
-			getOptionsForCategory(cat);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#putValue(java.lang.String, java.lang.String)
-	 */
-	public void putValue(String name, String value) {
-		Object oldValue = getOptionMap().get(name);
-		if (oldValue == null || !oldValue.equals(value))
-		{
-			getOptionMap().put(name, value);
-			setDirty(true);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, double)
-	 */
-	public void setDefault(String name, double value) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, float)
-	 */
-	public void setDefault(String name, float value) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, int)
-	 */
-	public void setDefault(String name, int value) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, long)
-	 */
-	public void setDefault(String name, long value) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, java.lang.String)
-	 */
-	public void setDefault(String name, String defaultObject) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, boolean)
-	 */
-	public void setDefault(String name, boolean value) {
-	}
-
-	protected void setDirty( boolean isDirty )
-	{
-		dirtyFlag = isDirty;
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setToDefault(java.lang.String)
-	 */
-	public void setToDefault(String name) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, double)
-	 */
-	public void setValue(String name, double value) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, float)
-	 */
-	public void setValue(String name, float value) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, int)
-	 */
-	public void setValue(String name, int value) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, long)
-	 */
-	public void setValue(String name, long value) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, java.lang.String)
-	 */
-	public void setValue(String name, String value) {
-		Object oldValue = getString(name);
-		if (oldValue == null || !oldValue.equals(value))
-		{
-			getOptionMap().put(name, value);
-			setDirty(true);
-			firePropertyChangeEvent(name, oldValue, value);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, boolean)
-	 */
-	public void setValue(String name, boolean value) {
-		boolean oldValue = getBoolean(name);
-		if (oldValue != value)
-		{
-			getOptionMap().put(name, new Boolean(value));
-			setDirty(true);
-			firePropertyChangeEvent(name, new Boolean(oldValue), new Boolean(value));
-		}
-		
-	}
-
-}
Index: build/org/eclipse/cdt/ui/build/properties/ManageConfigDialog.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/properties/ManageConfigDialog.java
diff -N build/org/eclipse/cdt/ui/build/properties/ManageConfigDialog.java
--- build/org/eclipse/cdt/ui/build/properties/ManageConfigDialog.java	9 Jun 2003 19:22:19 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,233 +0,0 @@
-package org.eclipse.cdt.ui.build.properties;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
-***********************************************************************/
-
-import java.util.ArrayList;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.ITarget;
-import org.eclipse.cdt.core.build.managed.ManagedBuildManager;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.utils.ui.controls.ControlFactory;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Shell;
-
-public class ManageConfigDialog extends Dialog {
-	// String constants
-	private static final String PREFIX = "BuildPropertyCommon";	//$NON-NLS-1$
-	private static final String LABEL = PREFIX + ".label";	//$NON-NLS-1$
-	private static final String NEW = LABEL + ".new";	//$NON-NLS-1$
-	private static final String REMOVE = LABEL + ".remove";	//$NON-NLS-1$
-	private static final String CONFIGS = LABEL + ".configs";	//$NON-NLS-1$
-	
-	// Default return values
-	private static final ArrayList EMPTY_LIST = new ArrayList(0);
-	private static final SortedMap EMPTY_MAP = new TreeMap();
-
-	// The title of the dialog.
-	private String title = "";
-	// The target the configs belong to
-	private ITarget managedTarget;
-	// The list of configurations to delete
-	private ArrayList deletedConfigIds;
-	// Map of configuration names and ids
-	private SortedMap configIds;
-	// Map of new configurations chosen by the user
-	private SortedMap newConfigs;
-	
-	// Widgets
-	private List configurationList;
-	private Button newBtn;
-	private Button okBtn;
-	private Button removeBtn;
-	
-	/**
-	 * @param parentShell
-	 */
-	protected ManageConfigDialog(Shell parentShell, String title, ITarget target) {
-		super(parentShell);
-		this.title = title;
-		this.managedTarget = target;
-		
-		// Get the defined configurations from the target
-		IConfiguration [] configs = this.managedTarget.getConfigurations();
-		configIds = new TreeMap();
-		for (int i = 0; i < configs.length; i++) {
-			IConfiguration configuration = configs[i];
-			configIds.put(configuration.getName(), configuration.getId());
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared in Window.
-	 */
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		if (title != null)
-			shell.setText(title);
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		// create OK and Cancel buttons by default
-		okBtn = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-
-		updateButtons();
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		// Create the main composite with a 2-column grid layout
-		Composite composite = ControlFactory.createComposite(parent, 3);
-		
-		// Create a list
-		Composite listComp = ControlFactory.createComposite(composite, 1);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.horizontalSpan = 2;
-		listComp.setLayoutData(gd);
-		Label label = ControlFactory.createLabel(listComp, CUIPlugin.getResourceString(CONFIGS));
-		label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		configurationList = new List(listComp, SWT.SINGLE|SWT.V_SCROLL|SWT.H_SCROLL|SWT.BORDER);
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.widthHint = 15;
-		configurationList.setLayoutData(gd);
-		
-		// Create a composite for the buttons		
-		Composite buttonBar = ControlFactory.createComposite(composite, 1);
-		newBtn = ControlFactory.createPushButton(buttonBar, CUIPlugin.getResourceString(NEW));
-		setButtonLayoutData(newBtn);
-		newBtn.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent e) {
-				handleNewPressed();
-			}
-		});
-		removeBtn = ControlFactory.createPushButton(buttonBar, CUIPlugin.getResourceString(REMOVE));
-		setButtonLayoutData(removeBtn);
-		removeBtn.addSelectionListener(new SelectionAdapter () {
-			public void widgetSelected(SelectionEvent e) {
-				handleRemovePressed();
-			}
-		});
-		
-		// Do the final widget prep
-		configurationList.setItems(getConfigurationNames());
-		configurationList.select(0);
-		newBtn.setFocus();
-		return composite;
-	}
-	
-	private String [] getConfigurationNames() {
-		return (String[]) configIds.keySet().toArray(new String[configIds.size()]);
-	}
-
-	/**
-	 * @return <code>ArrayList</code> of <code>IConfiguration</code> ids 
-	 * the user has decided to remove from the target.
-	 */
-	public ArrayList getDeletedConfigs() {
-		if (deletedConfigIds == null) {
-			deletedConfigIds = EMPTY_LIST; 
-		}
-		return deletedConfigIds;
-	}
-	
-	/**
-	 * @return Map of configuration names to <code>IConfiguration</code>.
-	 * The name is selected by the user and should be unique for the target 
-	 * it will be added to. The configuration is the what the new 
-	 * configuration will be based on.   
-	 */
-	public SortedMap getNewConfigs() {
-		if (newConfigs == null) {
-			newConfigs = EMPTY_MAP;
-		}
-		return newConfigs;
-	}
-
-	/*
-	 * @return the <code>IProject</code> associated with the target
-	 */
-	private IProject getProject() {
-		return managedTarget.getOwner().getProject();
-	}
-	
-	/*
-	 * Event handler for the add button
-	 */
-	protected void handleNewPressed() {
-		// Find the defined target
-		ITarget parentTarget = null;
-		ITarget [] targets = ManagedBuildManager.getDefinedTargets(getProject());
-		for (int i = 0; i < targets.length; i++) {
-			ITarget target = targets[i];
-			if (target.getId().equals(managedTarget.getId())) {
-				parentTarget = target;
-				break;
-			}
-		}
-		// Get all the predefined configs
-		IConfiguration [] allDefinedConfigs = null;
-		if (parentTarget != null) {
-			allDefinedConfigs = parentTarget.getConfigurations();
-		}
-		
-		// There should be predefined configurations ....
-		if (allDefinedConfigs != null && allDefinedConfigs.length != 0) {
-			NewConfigurationDialog dialog = new NewConfigurationDialog(getShell(), allDefinedConfigs, managedTarget);
-			if (dialog.open() == NewConfigurationDialog.OK) {
-				// Get the new name and configuration to base the new config on
-				getNewConfigs().put(dialog.getNewName(), dialog.getParentConfiguration());
-			}
-		}
-
-		// Update the buttons based on the choices		
-		updateButtons();
-	}
-
-	/*
-	 * Event handler for the remove button 
-	 */
-	protected void handleRemovePressed() {
-		// TODO Request a remove configuration function through the ITarget interface
-		// Determine which configuration was selected
-		int selectionIndex = configurationList.getSelectionIndex();
-		if (selectionIndex != -1){
-			String selectedConfig = configurationList.getItem(selectionIndex);
-			getDeletedConfigs().add(configIds.get(selectedConfig));
-			configurationList.remove(selectionIndex);
-			updateButtons();
-		}
-	}
-
-	private void updateButtons() {
-		// Disable the remove button if there is only 1 configuration
-//		removeBtn.setEnabled(configurationList.getItemCount() > 1);
-		removeBtn.setEnabled(false);
-		
-		// Enable the OK button if there are any configs to delete or add
-		okBtn.setEnabled(!(getDeletedConfigs().isEmpty() && getNewConfigs().isEmpty()));
-	}
-
-
-}
Index: build/org/eclipse/cdt/ui/build/properties/NewConfigurationDialog.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/properties/NewConfigurationDialog.java
diff -N build/org/eclipse/cdt/ui/build/properties/NewConfigurationDialog.java
--- build/org/eclipse/cdt/ui/build/properties/NewConfigurationDialog.java	9 Jun 2003 19:22:19 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,208 +0,0 @@
-package org.eclipse.cdt.ui.build.properties;
-
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.ITarget;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.utils.ui.controls.ControlFactory;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
-***********************************************************************/
-
-public class NewConfigurationDialog extends Dialog {
-	// String constants
-	private static final String PREFIX = "NewConfiguration";	//$NON-NLS-1$
-	private static final String LABEL = PREFIX + ".label";	//$NON-NLS-1$
-	private static final String ERROR = PREFIX + ".error";	//$NON-NLS-1$	
-	private static final String NAME = LABEL + ".name";	//$NON-NLS-1$
-	private static final String COPY = LABEL + ".copy";	//$NON-NLS-1$
-	private static final String TITLE = ERROR + ".title";	//$NON-NLS-1$	
-	private static final String DUPLICATE = ERROR + ".duplicateName";	//$NON-NLS-1$	
-
-	// Widgets
-	private Combo configSelector;
-	private Button btnOk;
-	private Text configName;
-		
-	// Bookeeping
-	private IConfiguration[] definedConfigurations;
-	private IConfiguration parentConfig;
-	private ITarget target;
-	private String newName;
-	private String [] allNames;
-
-	
-	/**
-	 * @param parentShell
-	 */
-	protected NewConfigurationDialog(Shell parentShell, IConfiguration[] configs, ITarget managedTarget) {
-		super(parentShell);
-		setShellStyle(getShellStyle()|SWT.RESIZE);
-		newName = new String();
-		parentConfig = null;
-		definedConfigurations = configs == null ? new IConfiguration[0] : configs;
-		allNames = getConfigurationNames();
-		this.target = managedTarget;
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on Dialog. Cache the name and base config selections.
-	 * We don't have to worry that the index or name is wrong because we 
-	 * enable the OK button IFF those conditions are met.
-	 */
-	protected void buttonPressed(int buttonId) {
-		if (buttonId == IDialogConstants.OK_ID) {
-			newName = configName.getText().trim();
-			String baseConfigName = configSelector.getItem(configSelector.getSelectionIndex());
-			for (int i = 0; i < definedConfigurations.length; i++) {
-				IConfiguration config = definedConfigurations[i];
-				if (config.getName().equals(baseConfigName)) {
-					parentConfig = config;
-					break;				
-				}
-			}
-		} else {
-			newName = null;
-			parentConfig = null;
-		}
-		super.buttonPressed(buttonId);
-	}
-
-	/* (non-Javadoc)
-	 * Method declared on Dialog. Create OK and Cancel buttons and hold onto the OK button handle.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		btnOk = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-		configName.setFocus();
-		if (configName != null) {
-			configName.setText(newName);
-		}
-		updateButtonState();
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = ControlFactory.createComposite(parent, 3);
-		GridData gd;
-		
-		// Add a label and a text widget
-		Label nameLabel = ControlFactory.createLabel(composite, CUIPlugin.getResourceString(NAME));
-		gd = new GridData();
-		gd.horizontalSpan = 1;
-		nameLabel.setLayoutData(gd);
-		configName = ControlFactory.createTextField(composite);
-		gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
-		gd.horizontalSpan = 2;
-		configName.setLayoutData(gd);
-		configName.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				updateButtonState();
-			}
-		});
-		
-		// Add a label and combo box to select the base config
-		Label configLabel = ControlFactory.createLabel(composite, CUIPlugin.getResourceString(COPY));
-		gd = new GridData();
-		gd.horizontalSpan = 1;
-		configLabel.setLayoutData(gd);
-		configSelector = ControlFactory.createSelectCombo(composite, allNames, newName);
-		gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
-		gd.horizontalSpan = 2;
-		configSelector.setLayoutData(gd);
-		configSelector.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateButtonState();		
-			}
-		});	
-		
-		return composite;
-	}
-
-	/**
-	 * @return the <code>IConfiguration</code> the user selected as 
-	 * the parent of the new configuration.
-	 */
-	public IConfiguration getParentConfiguration() {
-		return parentConfig;
-	}
-
-	/*
-	 * Returns an array of configuration names
-	 */
-	private String [] getConfigurationNames() {
-		String [] names = new String[definedConfigurations.length];
-		for (int index = 0; index < definedConfigurations.length; ++index) {
-			IConfiguration config = definedConfigurations[index];
-			names[index] = config.getName();
-		}
-		return names; 
-	}
-	
-	/**
-	 * @return <code>String</code> containing the name chosen by the user for the
-	 * new configuration.
-	 */
-	public String getNewName() {
-		return newName;
-	}
-
-	protected boolean isDuplicateName(String newName) {
-		// Return true if there is already a config of that name defined on the target
-		IConfiguration [] configs = target.getConfigurations();
-		for (int index = 0; index < configs.length; index++) {
-			IConfiguration configuration = configs[index];
-			if (configuration.getName() == newName) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	/*
-	 * Enable the OK button if there is a valid name in the text widget
-	 * and there is a valid selection in the base configuration combo 
-	 */
-	private void updateButtonState() {
-		if (btnOk != null) {
-			int selectionIndex = configSelector.getSelectionIndex();			
-			btnOk.setEnabled(validateName() && selectionIndex != -1);
-		}
-	}
-	
-	private boolean validateName() {
-		String currentName = configName.getText().trim(); 
-		int nameLength = currentName.length();
-		// Make sure the name is not a duplicate
-		if (isDuplicateName(currentName)) {
-			MessageDialog.openError(getShell(), 
-									CUIPlugin.getResourceString(TITLE), 
-									CUIPlugin.getFormattedString(DUPLICATE, currentName)); //$NON-NLS-1$
-			return false;
-		}
-		// TODO make sure there are no invalid chars in name
-		return (nameLength > 0);
-	}
-}
Index: build/org/eclipse/cdt/ui/build/properties/SummaryFieldEditor.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/properties/SummaryFieldEditor.java
diff -N build/org/eclipse/cdt/ui/build/properties/SummaryFieldEditor.java
--- build/org/eclipse/cdt/ui/build/properties/SummaryFieldEditor.java	11 Aug 2003 17:33:10 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,120 +0,0 @@
-package org.eclipse.cdt.ui.build.properties;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
-***********************************************************************/
-
-import org.eclipse.cdt.core.build.managed.ITool;
-import org.eclipse.jface.preference.FieldEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-public class SummaryFieldEditor extends FieldEditor {
-	// Whitespace character
-	private static final String WHITESPACE = " ";
-
-	// The top level composite
-	protected Composite parent;
-	// The tool this category belongs to
-	protected ITool tool;
-	// The text widget to hold summary of all commands for the tool
-	protected Text summary;
-	
-	/**
-	 * @param name 
-	 * @param labelText
-	 * @param parent
-	 */
-	public SummaryFieldEditor(String name, String labelText, ITool tool, Composite parent) {
-		super(name, labelText, parent);
-		this.tool = tool;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#adjustForNumColumns(int)
-	 */
-	protected void adjustForNumColumns(int numColumns) {
-		// For now grab the excess space
-		GridData gd = (GridData) summary.getLayoutData();
-		gd.horizontalSpan = numColumns - 1;
-		gd.grabExcessHorizontalSpace = true;
-		gd.grabExcessVerticalSpace = true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int)
-	 */
-	protected void doFillIntoGrid(Composite parent, int numColumns) {
-		this.parent = parent;
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = numColumns;
-		this.parent.setLayoutData(gd);
-		
-		// Add the label
-		Label label = getLabelControl(parent);
-		GridData labelData = new GridData();
-		labelData.horizontalSpan = numColumns;
-		label.setLayoutData(labelData);		
-
-		// Create the multi-line, read-only field
-		summary = new Text(parent, SWT.MULTI|SWT.READ_ONLY|SWT.WRAP);
-		GridData summaryData = new GridData(GridData.FILL_BOTH);
-		summaryData.horizontalSpan = numColumns;
-		summary.setLayoutData(summaryData);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doLoad()
-	 */
-	protected void doLoad() {
-		// Look at the data store for every option defined for the tool
-//		IOption[] options = tool.getOptions();
-//		for (int index = 0; index < options.length; ++index) {
-//			IOption option = options[index];
-//			String command = option.getCommand();
-//			if (command == null) {
-//				command = "";
-//			}
-//			String id = option.getId();
-//			String values = getPreferenceStore().getString(id);
-//			String[] valuesList = BuildToolsSettingsStore.parseString(values);
-//			for (int j = 0; j < valuesList.length; ++j) {
-//				String entry = valuesList[j];
-//				summary.append(command + entry + WHITESPACE);
-//			}
-//		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doLoadDefault()
-	 */
-	protected void doLoadDefault() {
-		doLoad();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doStore()
-	 */
-	protected void doStore() {
-		// This is a read-only summary field, so don't store data
-		return;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#getNumberOfControls()
-	 */
-	public int getNumberOfControls() {
-		// There is just the label from the parent and the text field
-		return 2;
-	}
-}
Index: build/org/eclipse/cdt/ui/build/properties/ToolListContentProvider.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/properties/ToolListContentProvider.java
diff -N build/org/eclipse/cdt/ui/build/properties/ToolListContentProvider.java
--- build/org/eclipse/cdt/ui/build/properties/ToolListContentProvider.java	9 Jun 2003 19:22:19 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,98 +0,0 @@
-package org.eclipse.cdt.ui.build.properties;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * Timesys - Initial API and implementation 
- * IBM Rational Software
- * *********************************************************************/
-
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.IOptionCategory;
-import org.eclipse.cdt.core.build.managed.ITool;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-public class ToolListContentProvider implements ITreeContentProvider{
-	private static Object[] EMPTY_ARRAY = new Object[0];
-	private IConfiguration root;
-
-	/**
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object parentElement) {
-		// If parent is configuration, return a list of its option categories
-		if (parentElement instanceof IConfiguration) {
-			IConfiguration config = (IConfiguration)parentElement;
-			ITool [] tools = config.getTools();
-			IOptionCategory [] categories = new IOptionCategory[tools.length];
-			// The categories are accessed through the tool
-			for (int index = 0; index < tools.length; ++index) {
-				categories[index] = tools[index].getTopOptionCategory();
-			}
-			return categories;
-		} else if (parentElement instanceof IOptionCategory) {
-			// Categories can have child categories
-			IOptionCategory cat = (IOptionCategory)parentElement;
-			IOptionCategory [] children = cat.getChildCategories();
-			if (children == null) {
-				return EMPTY_ARRAY;
-			} else {
-				return children;
-			}
-		} else {
-			return EMPTY_ARRAY;
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		return getChildren(inputElement);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-	 */
-	public Object getParent(Object element) {
-		if (element instanceof IOptionCategory) {
-			// Find the parent category
-			IOptionCategory cat = (IOptionCategory)element; 
-			IOptionCategory parent = cat.getOwner();
-			// Then we need to get the configuration we belong to
-			if (parent == null) {
-				ITool tool = cat.getTool();
-				return root;
-			}
-			return parent;
-		}
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-	 */
-	public boolean hasChildren(Object element) {
-		return getChildren(element).length > 0;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		root = (IConfiguration) newInput;
-	}
-}
-
Index: build/org/eclipse/cdt/ui/build/properties/ToolListLabelProvider.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/properties/ToolListLabelProvider.java
diff -N build/org/eclipse/cdt/ui/build/properties/ToolListLabelProvider.java
--- build/org/eclipse/cdt/ui/build/properties/ToolListLabelProvider.java	11 Aug 2003 17:33:10 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,56 +0,0 @@
-package org.eclipse.cdt.ui.build.properties;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
- * **********************************************************************/
-
-import org.eclipse.cdt.core.build.managed.IOptionCategory;
-import org.eclipse.cdt.internal.ui.CPluginImages;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
- 
-class ToolListLabelProvider extends LabelProvider {
-	private final Image IMG_TOOL = CPluginImages.get(CPluginImages.IMG_BUILD_TOOL);
-	private final Image IMG_CAT = CPluginImages.get(CPluginImages.IMG_BUILD_CAT);
-	private static final String TREE_LABEL = "BuildPropertyPage.label.ToolTree";	//$NON-NLS-1$
-
-	public Image getImage(Object element) {
-		// If the element is a configuration, return the folder image
-		if (element instanceof IOptionCategory) {
-			IOptionCategory cat = (IOptionCategory)element;
-			IOptionCategory [] children = cat.getChildCategories();
-			if (children.length > 0){
-				return IMG_TOOL;
-			} else {
-				return IMG_CAT;
-			}
-		} else {
-			throw unknownElement(element);
-		}
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof IOptionCategory) {
-			IOptionCategory cat = (IOptionCategory)element;
-			return cat.getName();
-		}
-		else {
-			throw unknownElement(element);
-		}
-	}
-
-	protected RuntimeException unknownElement(Object element) {
-		return new RuntimeException("Unknown type of element in tree of type " + element.getClass().getName());
-	}
-}
\ No newline at end of file
Index: build/org/eclipse/cdt/ui/build/wizards/CProjectPlatformPage.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/wizards/CProjectPlatformPage.java
diff -N build/org/eclipse/cdt/ui/build/wizards/CProjectPlatformPage.java
--- build/org/eclipse/cdt/ui/build/wizards/CProjectPlatformPage.java	23 Jun 2003 14:36:26 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,221 +0,0 @@
-package org.eclipse.cdt.ui.build.wizards;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
-***********************************************************************/
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.ListIterator;
-
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.ITarget;
-import org.eclipse.cdt.core.build.managed.ManagedBuildManager;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.ui.wizards.CProjectWizard;
-import org.eclipse.cdt.utils.ui.controls.ControlFactory;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Table;
-
-public class CProjectPlatformPage extends WizardPage {
-	/*
-	 * Bookeeping variables
-	 */
-	private CProjectWizard wizard;
-	private ArrayList selectedConfigurations;
-	protected ITarget selectedTarget;
-	protected String[] targetNames;
-	protected ArrayList targets;
-
-	/*
-	 * Dialog variables and string constants
-	 */
-	protected Combo platformSelection;
-	protected CheckboxTableViewer tableViewer;
-	private static final String PREFIX = "PlatformBlock"; //$NON-NLS-1$
-	private static final String LABEL = PREFIX + ".label"; //$NON-NLS-1$
-	private static final String TIP = PREFIX + ".tip"; //$NON-NLS-1$
-	private static final String PLATFORM_TIP = TIP + ".platform"; //$NON-NLS-1$
-	private static final String PLATFORM_LABEL = LABEL + ".platform"; //$NON-NLS-1$
-	private static final String CONFIG_LABEL = LABEL + ".configs"; //$NON-NLS-1$
-
-	/**
-	 * Constructor.
-	 * @param wizard
-	 * @param pageName
-	 */
-	public CProjectPlatformPage(CProjectWizard wizard, String pageName) {
-		super(pageName);
-		setPageComplete(false);
-		this.wizard = wizard;
-		populateTargets();
-		selectedTarget = null;
-		selectedConfigurations = new ArrayList(0);
-	}
-
-	/**
-	 * @see org.eclipse.jface.wizard.IWizardPage#canFlipToNextPage()
-	 */
-	public boolean canFlipToNextPage() {
-		return validatePage();
-	}
-
-	/**
-	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		// Create the composite control for the tab
-		Composite composite = ControlFactory.createComposite(parent, 6);
-
-		// Create the platform selection label and combo widgets
-		Label platformLabel = ControlFactory.createLabel(composite, CUIPlugin.getResourceString(PLATFORM_LABEL));
-		platformLabel.setLayoutData(new GridData());
-
-		platformSelection =	ControlFactory.createSelectCombo(composite, targetNames, null);
-		platformSelection.setToolTipText(CUIPlugin.getResourceString(PLATFORM_TIP));
-		platformSelection.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				handleTargetSelection();
-			}
-		});
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 5;
-		platformSelection.setLayoutData(gd);
-
-		// Create a check box table of valid configurations
-		Label configLabel = ControlFactory.createLabel(composite, CUIPlugin.getResourceString(CONFIG_LABEL));
-		configLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		Table table = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.MULTI
-								| SWT.SINGLE | SWT.H_SCROLL	| SWT.V_SCROLL);
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.horizontalSpan = 6;
-		table.setLayoutData(gd);
-		table.setHeaderVisible(true);
-		table.setLinesVisible(false);
-
-		// Add a table layout to the table
-		TableLayout tableLayout = new TableLayout();
-		table.setHeaderVisible(false);
-		table.setLayout(tableLayout);
-
-		// Add the viewer
-		tableViewer = new CheckboxTableViewer(table);
-		tableViewer.setLabelProvider(new ConfigurationLabelProvider());
-		tableViewer.setContentProvider(new ConfigurationContentProvider());
-		tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent e) {
-				// will default to false until a selection is made
-				handleConfigurationSelectionChange();
-			}
-		});
-		
-		// Select the first target in the list
-		handleTargetSelection();
-		
-		// Do the nasty
-		setErrorMessage(null);
-		setMessage(null);
-		setControl(composite);
-	}
-
-	public IConfiguration[] getSelectedConfigurations() {
-		return (IConfiguration[]) selectedConfigurations.toArray(new IConfiguration[selectedConfigurations.size()]);
-	}
-
-	/**
-	 * Returns the name of the selected platform.
-	 * 
-	 * @return String containing platform name or <code>null</code> if an invalid selection
-	 * has been made.
-	 */
-	public ITarget getSelectedTarget() {
-		return selectedTarget;
-	}
-
-	private void handleConfigurationSelectionChange() {
-		// Get the selections from the table viewer
-		selectedConfigurations.clear();
-		selectedConfigurations.addAll(Arrays.asList(tableViewer.getCheckedElements()));
-	}
-
-	/**
-	 * Returns whether this page's controls currently all contain valid 
-	 * values.
-	 *
-	 * @return <code>true</code> if all controls are valid, and
-	 *   <code>false</code> if at least one is invalid
-	 */
-	protected void handleTargetSelection() {
-		/*
-		 * The index in the combo is the offset into the target list
-		 */
-		int index;
-		if (platformSelection != null
-			&& (index = platformSelection.getSelectionIndex()) != -1) {
-			selectedTarget = (ITarget) targets.get(index);
-		}
-		populateConfigurations();
-		setPageComplete(validatePage());
-	}
-
-	/**
-	 * Populate the table viewer with the known configurations. 
-	 * By default, all the configurations are selected.
-	 */
-	private void populateConfigurations() {
-		// Make the root of the content provider the new target
-		tableViewer.setInput(selectedTarget);
-		tableViewer.setAllChecked(true);
-		handleConfigurationSelectionChange();
-	}
-
-	private void populateTargetNames() {
-		targetNames = new String[targets.size()];
-		ListIterator iter = targets.listIterator();
-		int index = 0;
-		while (iter.hasNext()) {
-			targetNames[index++] = ((ITarget) iter.next()).getName();
-		}
-	}
-
-	private void populateTargets() {
-		// Get a list of platforms defined by plugins
-		ITarget[] allTargets = ManagedBuildManager.getDefinedTargets(null);
-		targets = new ArrayList();
-		// Add all of the concrete targets to the target list
-		for (int index = 0; index < allTargets.length; ++index) {
-			ITarget target = allTargets[index];
-			if (!target.isAbstract() && !target.isTestTarget()) {
-				targets.add(target);
-			}
-		}
-		targets.trimToSize();
-		populateTargetNames();
-	}
-
-	/**
-	 * @return
-	 */
-	private boolean validatePage() {
-		// TODO Auto-generated method stub
-		return true;
-	}
-}
Index: build/org/eclipse/cdt/ui/build/wizards/ConfigurationBlock.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/wizards/ConfigurationBlock.java
diff -N build/org/eclipse/cdt/ui/build/wizards/ConfigurationBlock.java
--- build/org/eclipse/cdt/ui/build/wizards/ConfigurationBlock.java	9 Jun 2003 19:22:19 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,181 +0,0 @@
-package org.eclipse.cdt.ui.build.wizards;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * Rational Software - Initial API and implementation
-***********************************************************************/
-
-import org.eclipse.cdt.core.CProjectNature;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.ui.wizards.IWizardTab;
-import org.eclipse.cdt.utils.ui.controls.ControlFactory;
-import org.eclipse.cdt.utils.ui.controls.RadioButtonsArea;
-import org.eclipse.cdt.utils.ui.swt.IValidation;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-public class ConfigurationBlock implements IWizardTab {
-	/* (non-Javadoc)
-	 * String constants
-	 */
-	private static final String PREFIX = "ConfigurationBlock"; //$NON-NLS-1$
-	private static final String TYPE = PREFIX + ".type"; //$NON-NLS-1$
-	private static final String LABEL = PREFIX + ".label"; //$NON-NLS-1$
-	private static final String APP = TYPE + ".app"; //$NON-NLS-1$
-	private static final String DLL = TYPE + ".shared"; //$NON-NLS-1$
-	private static final String LIB = TYPE + ".static"; //$NON-NLS-1$
-	private static final String BUILD = PREFIX + ".build"; //$NON-NLS-1$
-	private static final String BUILD_LABEL = BUILD + ".label"; //$NON-NLS-1$
-	private static final String CONT = BUILD + ".continue"; //$NON-NLS-1$
-	private static final String STOP = BUILD + ".stop"; //$NON-NLS-1$
-	
-	/* (non-Javadoc)
-	 * Bookeeping variables
-	 */
-	private IValidation page;
-	private ManagedProjectWizard fWizard;
-
-	/* (non-Javadoc)
-	 * Widgets used on the tab
-	 */
-	protected Composite composite;
-	protected GridData gd;
-	protected RadioButtonsArea typeRadioButtons;
-	private String [][] types;
-	private static final String APP_ARG = "exe"; //$NON-NLS-1$
-	private static final String DLL_ARG = "dll"; //$NON-NLS-1$
-	private static final String LIB_ARG = "lib"; //$NON-NLS-1$
-	protected RadioButtonsArea optRadioButtons;
-	private String [][] opts;
-	private static final String CONT_ARG = "cont"; //$NON-NLS-1$
-	private static final String STOP_ARG = "stop"; //$NON-NLS-1$
-	
-	public ConfigurationBlock(IValidation valid, ManagedProjectWizard wizard) {
-		page = valid;
-		fWizard = wizard;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.ui.wizards.IWizardTab#getLabel()
-	 */
-	public String getLabel() {
-		return CUIPlugin.getResourceString(LABEL);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.ui.wizards.IWizardTab#getImage()
-	 */
-	public Image getImage() {
-//		return CPluginImages.get(CPluginImages.IMG_BUILD_CONFIG);
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.ui.wizards.IWizardTab#getControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public Composite getControl(Composite parent) {
-		// Create the composite control for the tab
-		composite = ControlFactory.createComposite(parent, 2);
-		
-		// Create the application type selection area and select the application option
-		types = new String [][] {
-			{CUIPlugin.getResourceString(APP), APP_ARG}, 
-			{CUIPlugin.getResourceString(DLL), DLL_ARG},
-			{CUIPlugin.getResourceString(LIB), LIB_ARG}
-		};
-		typeRadioButtons = new RadioButtonsArea(composite, CUIPlugin.getResourceString(TYPE), 1, types);
-		typeRadioButtons.addListener(SWT.Selection, new Listener () {
-			public void handleEvent(Event e) {
-				page.setComplete(isValid());
-			}
-		});
-		
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		gd.horizontalAlignment = GridData.FILL;
-		gd.grabExcessHorizontalSpace = true;
-		typeRadioButtons.setLayoutData(gd);
-		
-		// Create the build option buttons
-		opts = new String [][] {
-			{CUIPlugin.getResourceString(CONT), CONT_ARG},
-			{CUIPlugin.getResourceString(STOP), STOP_ARG}
-		};
-		optRadioButtons = new RadioButtonsArea(composite, CUIPlugin.getResourceString(BUILD_LABEL), 1, opts);
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		gd.horizontalAlignment = GridData.FILL;
-		gd.grabExcessHorizontalSpace = true;
-		optRadioButtons.setLayoutData(gd);
-
-		// Return the widget
-		return composite;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.ui.wizards.IWizardTab#isValid()
-	 */
-	public boolean isValid() {
-		return true;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.ui.wizards.IWizardTab#setVisible(boolean)
-	 */
-	public void setVisible(boolean visible) {
-
-		// Set the executable radio button by default
-		typeRadioButtons.setSelectedButton(0);
-
-		// Set the build option radio button based on the platform default
-		optRadioButtons.setSelectedButton(0);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.ui.wizards.IWizardTab#doRun(org.eclipse.core.resources.IProject, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doRun(IProject project, IProgressMonitor monitor) {
-		try {
-			if (monitor == null) {
-				monitor = new NullProgressMonitor();
-			}
-			monitor.beginTask("Configuration", 1);
-			
-			// Get the project nature;
-			CProjectNature nature =	(CProjectNature) project.getNature(CProjectNature.C_NATURE_ID);
-			
-			// Set the build options on the project nature
-			if (nature != null) {
-				nature.setStopOnError(isStopOnError());
-			}
-		}
-		catch (CoreException e) {
-		}
-	}
-
-	/**
-	 * Method isStopOnError.
-	 * @return boolean
-	 */
-	private boolean isStopOnError() {
-		if (optRadioButtons != null) {
-			return (optRadioButtons.getSelectedValue() == STOP_ARG);
-		}
-		return false;
-	}
-
-}
Index: build/org/eclipse/cdt/ui/build/wizards/ConfigurationContentProvider.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/wizards/ConfigurationContentProvider.java
diff -N build/org/eclipse/cdt/ui/build/wizards/ConfigurationContentProvider.java
--- build/org/eclipse/cdt/ui/build/wizards/ConfigurationContentProvider.java	9 Jun 2003 19:22:19 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,35 +0,0 @@
-package org.eclipse.cdt.ui.build.wizards;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
-***********************************************************************/
-
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.ITarget;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-public class ConfigurationContentProvider implements IStructuredContentProvider {
-	// The contents of the parent of the table is a list of configurations
-	public Object[] getElements(Object parent) {
-		// The content is a list of configurations
-		IConfiguration[] configs = ((ITarget) parent).getConfigurations();
-		return (configs.length == 0) ? new Object[0] : configs;
-	}
-
-	public void dispose() {
-	}
-
-	public void inputChanged(
-		Viewer viewer,
-		Object oldInput,
-		Object newInput) {
-	}
-}
Index: build/org/eclipse/cdt/ui/build/wizards/ConfigurationLabelProvider.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/wizards/ConfigurationLabelProvider.java
diff -N build/org/eclipse/cdt/ui/build/wizards/ConfigurationLabelProvider.java
--- build/org/eclipse/cdt/ui/build/wizards/ConfigurationLabelProvider.java	9 Jun 2003 19:22:19 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,36 +0,0 @@
-package org.eclipse.cdt.ui.build.wizards;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * IBM Rational Software - Initial API and implementation
-***********************************************************************/
-
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.internal.ui.CPluginImages;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-public class ConfigurationLabelProvider	extends LabelProvider implements ITableLabelProvider {
-	private final Image IMG_CFG =
-		CPluginImages.get(CPluginImages.IMG_BUILD_CONFIG);
-
-	// 
-	public String getColumnText(Object obj, int index) {
-		if (obj instanceof IConfiguration) {
-			return ((IConfiguration) obj).getName();
-		}
-		return new String();
-	}
-
-	public Image getColumnImage(Object obj, int index) {
-		return IMG_CFG;
-	}
-}
-
Index: build/org/eclipse/cdt/ui/build/wizards/ManagedCCWizard.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/wizards/ManagedCCWizard.java
diff -N build/org/eclipse/cdt/ui/build/wizards/ManagedCCWizard.java
--- build/org/eclipse/cdt/ui/build/wizards/ManagedCCWizard.java	9 Jun 2003 19:22:19 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,66 +0,0 @@
-package org.eclipse.cdt.ui.build.wizards;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * Rational Software - Initial API and implementation
-***********************************************************************/
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.swt.widgets.TabFolder;
-
-/**
- * Wizard that creates a new C++ project that uses the managed make system
- */
-public class ManagedCCWizard extends ManagedProjectWizard {
-	
-	private static final String WZ_TITLE = "MngCCWizard.title";
-	private static final String WZ_DESC = "MngCCWizard.description";
-	private static final String SETTINGS_TITLE= "MngCCWizardSettings.title"; //$NON-NLS-1$
-	private static final String SETTINGS_DESC= "MngCCWizardSettings.description"; //$NON-NLS-1$
-
-	public ManagedCCWizard() {
-		this(CUIPlugin.getResourceString(WZ_TITLE), CUIPlugin.getResourceString(WZ_DESC));
-	}
-
-	public ManagedCCWizard(String title, String desc) {
-		super(title, desc);
-	}
-
-	public void addTabItems(TabFolder folder) {
-		super.addTabItems(folder);
-		fTabFolderPage.setTitle(CUIPlugin.getResourceString(SETTINGS_TITLE));
-		fTabFolderPage.setDescription(CUIPlugin.getResourceString(SETTINGS_DESC));
-	}
-	
-	protected void doRun(IProgressMonitor monitor) throws CoreException {
-		monitor.beginTask("Creating Generated C++ Make Project", 4);
-		super.doRun(monitor);
-		// Add C++ and managed build natures
-		if (newProject != null) {
-			if (monitor == null) {
-				monitor = new NullProgressMonitor();
-			}
-			// Add C++ Nature to the newly created project.
-			monitor.subTask("Adding C++ Nature");
-			CCorePlugin.getDefault().convertProjectFromCtoCC(newProject, monitor);
-			monitor.worked(1);
-			
-			// Add the managed build nature to the project
-			monitor.subTask("Adding makefile generator");
-			addManagedBuildNature(newProject, monitor);
-			monitor.worked(1);
-			
-			monitor.done();
-		}
-	}
-}
Index: build/org/eclipse/cdt/ui/build/wizards/ManagedCWizard.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/wizards/ManagedCWizard.java
diff -N build/org/eclipse/cdt/ui/build/wizards/ManagedCWizard.java
--- build/org/eclipse/cdt/ui/build/wizards/ManagedCWizard.java	9 Jun 2003 19:22:19 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,61 +0,0 @@
-package org.eclipse.cdt.ui.build.wizards;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * Rational Software - Initial API and implementation
-***********************************************************************/
-
-
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.swt.widgets.TabFolder;
-
-/**
- * Wizard to create a new C project that uses the managed make system.
- */
-public class ManagedCWizard extends ManagedProjectWizard {
-	
-	private static final String WZ_TITLE = "MngCWizard.title";
-	private static final String WZ_DESC = "MngCWizard.description";
-	private static final String SETTINGS_TITLE= "MngCWizardSettings.title"; //$NON-NLS-1$
-	private static final String SETTINGS_DESC= "MngCWizardSettings.description"; //$NON-NLS-1$
-
-	public ManagedCWizard() {
-		this(CUIPlugin.getResourceString(WZ_TITLE), CUIPlugin.getResourceString(WZ_DESC));
-	}
-
-	public ManagedCWizard(String title, String desc) {
-		super(title, desc);
-	}
-	
-	public void addTabItems(TabFolder folder) {
-		super.addTabItems(folder);
-		fTabFolderPage.setTitle(CUIPlugin.getResourceString(SETTINGS_TITLE));
-		fTabFolderPage.setDescription(CUIPlugin.getResourceString(SETTINGS_DESC));
-	}
-
-	protected void doRun(IProgressMonitor monitor) throws CoreException {
-		// Let the super class create and populate the standard project
-		super.doRun(monitor);
-		// Add the managed build nature
-		if (newProject != null) {
-			if (monitor == null) {
-				monitor = new NullProgressMonitor();
-			}
-			monitor.beginTask("Creating Generated C Make Project", 3);
-
-			// Add the managed build nature to the project
-			addManagedBuildNature(newProject, monitor);
-
-			monitor.done();
-		}
-	}
-}
Index: build/org/eclipse/cdt/ui/build/wizards/ManagedProjectWizard.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/build/wizards/ManagedProjectWizard.java
diff -N build/org/eclipse/cdt/ui/build/wizards/ManagedProjectWizard.java
--- build/org/eclipse/cdt/ui/build/wizards/ManagedProjectWizard.java	18 Aug 2003 17:34:19 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,214 +0,0 @@
-package org.eclipse.cdt.ui.build.wizards;
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors: 
- * Rational Software - Initial API and implementation
-***********************************************************************/
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.ICDescriptor;
-import org.eclipse.cdt.core.ManagedCProjectNature;
-import org.eclipse.cdt.core.build.managed.BuildException;
-import org.eclipse.cdt.core.build.managed.IConfiguration;
-import org.eclipse.cdt.core.build.managed.ITarget;
-import org.eclipse.cdt.core.build.managed.ManagedBuildManager;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.ui.wizards.BinaryParserBlock;
-import org.eclipse.cdt.ui.wizards.CProjectWizard;
-import org.eclipse.cdt.ui.wizards.CProjectWizardPage;
-import org.eclipse.cdt.ui.wizards.ReferenceBlock;
-import org.eclipse.cdt.ui.wizards.TabFolderPage;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-
-public abstract class ManagedProjectWizard extends CProjectWizard {
-
-	/* (non-Javadoc)
-	 * String constants
-	 */
-	protected static final String PREFIX = "MngMakeProjectWizard";	//$NON-NLS-1$
-	protected static final String OP_ERROR= PREFIX + ".op_error";	//$NON-NLS-1$
-	protected static final String WZ_TITLE= PREFIX + ".title";	//$NON-NLS-1$
-	protected static final String WZ_DESC= PREFIX + ".description";	//$NON-NLS-1$
-	protected static final String SETTINGS_TITLE= "MngMakeWizardSettings.title"; //$NON-NLS-1$
-	protected static final String SETTINGS_DESC= "MngMakeWizardSettings.description";	//$NON-NLS-1$
-	
-	/* (non-Javadoc)
-	 * Wizard has a page inherited from super class for setting project
-	 * location, one for choosing the platform and a tabbed page to set
-	 * configuration options
-	 */
-	protected CProjectPlatformPage targetConfigurationPage; 
-	protected ConfigurationBlock configBlock;
-	protected ReferenceBlock referenceBlock;
-	protected BinaryParserBlock binaryParserBlock;
-
-	/**
-	 * Default Constructor
-	 */
-	public ManagedProjectWizard() {
-		this(CUIPlugin.getResourceString(WZ_TITLE), CUIPlugin.getResourceString(WZ_DESC));
-	}
-	
-	/**
-	 * @see org.eclipse.cdt.ui.wizards.CProjectWizard#CProjectWizard(java.lang.String, java.lang.String)
-	 */
-	public ManagedProjectWizard(String title, String desc) {
-		super(title,desc);
-	}
-
-	public void addManagedBuildNature (IProject project, IProgressMonitor monitor) {
-		// Add the managed build nature
-		try {
-			monitor.subTask("Adding Managed Nature");
-			ManagedCProjectNature.addManagedNature(project, monitor);
-			monitor.worked(1);
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-		// Add the builder
-		try {
-			monitor.subTask("Adding Makefile Generator");
-			ManagedCProjectNature.addManagedBuilder(project, monitor);
-			monitor.worked(1);
-		} catch (CoreException e) {
-			// TODO: handle exception
-		}
-		
-		// Add the target to the project
-		try {
-			ITarget parent = targetConfigurationPage.getSelectedTarget();
-			ITarget newTarget = ManagedBuildManager.createTarget(project, parent);
-			if (newTarget != null) {
-				// TODO add name entry field to project
-				String artifactName = project.getName();
-				artifactName +=  parent.getDefaultExtension().length() == 0 ? "" : "." + parent.getDefaultExtension();
-				newTarget.setBuildArtifact(artifactName);
-				IConfiguration [] selectedConfigs = targetConfigurationPage.getSelectedConfigurations();
-				for (int i = 0; i < selectedConfigs.length; i++) {
-					IConfiguration config = selectedConfigs[i];
-					newTarget.createConfiguration(config, config.getId() + "." + i);
-				}
-				// Now add the first config in the list as the default
-				IConfiguration[] newConfigs = newTarget.getConfigurations();
-				if (newConfigs.length > 0) {
-					ManagedBuildManager.setDefaultConfiguration(project, newConfigs[0]);
-				}
-			}
-		} catch (BuildException e) {
-			e.printStackTrace();
-		}
-		
-		// Associate the project with the managed builder so the clients can get proper information
-		try {
-			ICDescriptor desc = CCorePlugin.getDefault().getCProjectDescription(project);
-			desc.remove(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID);
-			desc.create(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID, ManagedBuildManager.INTERFACE_IDENTITY);
-		} catch (CoreException e) {
-			// TODO Flag the error to the user
-		}
-		
-		// Save the build options
-		monitor.subTask("Saving new build options.");
-		ManagedBuildManager.saveBuildInfo(project);
-		monitor.worked(1);
-	}
-
-	/** 
-	 * @see Wizard#createPages
-	 */		
-	public void addPages() {
-		// Add the page to name the project and set the location
-		fMainPage= new CProjectWizardPage(this, new String());
-		fMainPage.setTitle(CUIPlugin.getResourceString(WZ_TITLE));
-		fMainPage.setDescription(CUIPlugin.getResourceString(WZ_DESC));
-		addPage(fMainPage);
-		
-		// Add a page to chose the build platform
-		targetConfigurationPage = new CProjectPlatformPage(this, new String());
-		targetConfigurationPage.setTitle(CUIPlugin.getResourceString(WZ_TITLE));
-		targetConfigurationPage.setDescription(CUIPlugin.getResourceString(WZ_DESC));
-		addPage(targetConfigurationPage);
-		
-		// Add the tab container
-		fTabFolderPage = new TabFolderPage(this);
-		addPage(fTabFolderPage);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.ui.wizards.CProjectWizard#addTabItems(org.eclipse.swt.widgets.TabFolder)
-	 */
-	public void addTabItems(TabFolder folder) {
-		fTabFolderPage.setTitle(CUIPlugin.getResourceString(SETTINGS_TITLE));
-		fTabFolderPage.setDescription(CUIPlugin.getResourceString(SETTINGS_DESC));
-
-		// Add the tab to set the project dependencies
-		referenceBlock = new ReferenceBlock(getValidation());
-		TabItem item2 = new TabItem(folder, SWT.NONE);
-		item2.setText(referenceBlock.getLabel());
-		Image img2 = referenceBlock.getImage();
-		if (img2 != null)
-			item2.setImage(img2);
-		item2.setData(referenceBlock);
-		item2.setControl(referenceBlock.getControl(folder));
-		addTabItem(referenceBlock);
-
-		// add the tab to select which parser to use for binaries
-		binaryParserBlock = new BinaryParserBlock(getValidation());
-		TabItem item3 = new TabItem(folder, SWT.NONE);
-		item3.setText(binaryParserBlock.getLabel());
-		Image img3 = binaryParserBlock.getImage();
-		if (img3 != null)
-			item3.setImage(img3);
-		item3.setData(binaryParserBlock);
-		item3.setControl(binaryParserBlock.getControl(folder));
-		addTabItem(binaryParserBlock);
-	}
-
-	protected void doRunPrologue(IProgressMonitor monitor) {
-	}
-
-	protected void doRunEpilogue(IProgressMonitor monitor) {
-	}
-
-	protected void doRun(IProgressMonitor monitor) throws CoreException {
-		// super.doRun() just creates the project and does not assign a builder to it.
-		super.doRun(monitor);
-        
-		// Modify the project based on what the user has selected
-		if (newProject != null) {
-			if (monitor == null) {
-				monitor = new NullProgressMonitor();
-			}
-			// Update the referenced project if provided.
-			monitor.subTask("Adding project references");
-			if (referenceBlock != null) {
-				referenceBlock.doRun(newProject, new SubProgressMonitor(monitor, 1));
-			}
-			monitor.worked(1);
-			// Update the binary parser
-			monitor.subTask("Setting binary parser");
-			if (binaryParserBlock != null) {
-				binaryParserBlock.doRun(newProject, new SubProgressMonitor(monitor, 1));
-			}
-			monitor.worked(1);
-		}
-	}
-	
-	public String getProjectID() {
-		return CCorePlugin.PLUGIN_ID + ".make";
-	}
-}
Index: icons/full/build16/action-buildconfig.gif
===================================================================
RCS file: icons/full/build16/action-buildconfig.gif
diff -N icons/full/build16/action-buildconfig.gif
Binary files /tmp/cvsyx6imo and /dev/null differ
Index: icons/full/build16/action-deleteconfig.gif
===================================================================
RCS file: icons/full/build16/action-deleteconfig.gif
diff -N icons/full/build16/action-deleteconfig.gif
Binary files /tmp/cvslemA6P and /dev/null differ
Index: icons/full/build16/action-editconfig.gif
===================================================================
RCS file: icons/full/build16/action-editconfig.gif
diff -N icons/full/build16/action-editconfig.gif
Binary files /tmp/cvsorKJNh and /dev/null differ
Index: icons/full/build16/action-newconfig.gif
===================================================================
RCS file: icons/full/build16/action-newconfig.gif
diff -N icons/full/build16/action-newconfig.gif
Binary files /tmp/cvsB9DQsJ and /dev/null differ
Index: icons/full/build16/build_configs.gif
===================================================================
RCS file: icons/full/build16/build_configs.gif
diff -N icons/full/build16/build_configs.gif
Binary files /tmp/cvs0h8O4a and /dev/null differ
Index: icons/full/build16/config-category.gif
===================================================================
RCS file: icons/full/build16/config-category.gif
diff -N icons/full/build16/config-category.gif
Binary files /tmp/cvs1P3tCC and /dev/null differ
Index: icons/full/build16/config-compiler.gif
===================================================================
RCS file: icons/full/build16/config-compiler.gif
diff -N icons/full/build16/config-compiler.gif
Binary files /tmp/cvsSiBe73 and /dev/null differ
Index: icons/full/build16/config-debug.gif
===================================================================
RCS file: icons/full/build16/config-debug.gif
diff -N icons/full/build16/config-debug.gif
Binary files /tmp/cvsBRdbAv and /dev/null differ
Index: icons/full/build16/config-librarian.gif
===================================================================
RCS file: icons/full/build16/config-librarian.gif
diff -N icons/full/build16/config-librarian.gif
Binary files /tmp/cvsClxLYW and /dev/null differ
Index: icons/full/build16/config-linker.gif
===================================================================
RCS file: icons/full/build16/config-linker.gif
diff -N icons/full/build16/config-linker.gif
Binary files /tmp/cvsVUMmko and /dev/null differ
Index: icons/full/build16/config-preprocessor.gif
===================================================================
RCS file: icons/full/build16/config-preprocessor.gif
diff -N icons/full/build16/config-preprocessor.gif
Binary files /tmp/cvsKyCfEP and /dev/null differ
Index: icons/full/build16/config-profile.gif
===================================================================
RCS file: icons/full/build16/config-profile.gif
diff -N icons/full/build16/config-profile.gif
Binary files /tmp/cvsJV2KTg and /dev/null differ
Index: icons/full/build16/config-release.gif
===================================================================
RCS file: icons/full/build16/config-release.gif
diff -N icons/full/build16/config-release.gif
Binary files /tmp/cvsSHPo6H and /dev/null differ
Index: icons/full/build16/config-tool.gif
===================================================================
RCS file: icons/full/build16/config-tool.gif
diff -N icons/full/build16/config-tool.gif
Binary files /tmp/cvszzq3g9 and /dev/null differ
Index: icons/full/wizban/newmngc_app.gif
===================================================================
RCS file: icons/full/wizban/newmngc_app.gif
diff -N icons/full/wizban/newmngc_app.gif
Binary files /tmp/cvsMHfbtD and /dev/null differ
Index: icons/full/wizban/newmngcc_app.gif
===================================================================
RCS file: icons/full/wizban/newmngcc_app.gif
diff -N icons/full/wizban/newmngcc_app.gif
Binary files /tmp/cvsPGAQB7 and /dev/null differ
Index: src/org/eclipse/cdt/internal/ui/CPluginImages.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CPluginImages.java,v
retrieving revision 1.19
diff -u -r1.19 CPluginImages.java
--- src/org/eclipse/cdt/internal/ui/CPluginImages.java	11 Aug 2003 17:33:10 -0000	1.19
+++ src/org/eclipse/cdt/internal/ui/CPluginImages.java	15 Sep 2003 19:01:12 -0000
@@ -35,7 +35,6 @@
 	private static final int NAME_PREFIX_LENGTH= NAME_PREFIX.length();
 	private static final String T= "full/";
 
-	public static final String T_BUILD= T + "build16/";
 	public static final String T_OBJ= T + "obj16/";
 	public static final String T_WIZBAN= T + "wizban/";
 	public static final String T_LCL=  "lcl16/";
@@ -148,24 +147,6 @@
 	public static final String IMG_OBJS_BUILD= NAME_PREFIX + "build_menu.gif";
 	public static final ImageDescriptor DESC_BUILD_MENU = createManaged(T_OBJ, IMG_OBJS_BUILD);
 	
-	// For the managed build images
-	public static final String IMG_BUILD_CONFIG = NAME_PREFIX + "build_configs.gif";
-	public static final ImageDescriptor DESC_BUILD_CONFIG = createManaged(T_BUILD, IMG_BUILD_CONFIG);
-	public static final String IMG_BUILD_COMPILER = NAME_PREFIX + "config-compiler.gif";
-	public static final ImageDescriptor DESC_BUILD_COMPILER = createManaged(T_BUILD, IMG_BUILD_COMPILER);
-	public static final String IMG_BUILD_LINKER = NAME_PREFIX + "config-linker.gif";
-	public static final ImageDescriptor DESC_BUILD_LINKER = createManaged(T_BUILD, IMG_BUILD_LINKER);
-	public static final String IMG_BUILD_LIBRARIAN = NAME_PREFIX + "config-librarian.gif";
-	public static final ImageDescriptor DESC_BUILD_LIBRARIAN = createManaged(T_BUILD, IMG_BUILD_LIBRARIAN);
-	public static final String IMG_BUILD_COMMAND = NAME_PREFIX + "config-command.gif";
-	public static final ImageDescriptor DESC_BUILD_COMMAND = createManaged(T_BUILD, IMG_BUILD_COMMAND);
-	public static final String IMG_BUILD_PREPROCESSOR = NAME_PREFIX + "config-preprocessor.gif";
-	public static final ImageDescriptor DESC_BUILD_PREPROCESSOR = createManaged(T_BUILD, IMG_BUILD_PREPROCESSOR);
-	public static final String IMG_BUILD_TOOL = NAME_PREFIX + "config-tool.gif";
-	public static final ImageDescriptor DESC_BUILD_TOOL = createManaged(T_BUILD, IMG_BUILD_TOOL);
-	public static final String IMG_BUILD_CAT = NAME_PREFIX + "config-category.gif";
-	public static final ImageDescriptor DESC_BUILD_CAT = createManaged(T_BUILD, IMG_BUILD_CAT);
-
 	//for search
 	public static final String IMG_OBJS_SEARCH_REF  = NAME_PREFIX + "search_ref_obj.gif";
 	public static final String IMG_OBJS_SEARCH_DECL = NAME_PREFIX + "search_decl_obj.gif";
Index: src/org/eclipse/cdt/internal/ui/CPluginResources.properties
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CPluginResources.properties,v
retrieving revision 1.21
diff -u -r1.21 CPluginResources.properties
--- src/org/eclipse/cdt/internal/ui/CPluginResources.properties	11 Sep 2003 17:13:00 -0000	1.21
+++ src/org/eclipse/cdt/internal/ui/CPluginResources.properties	15 Sep 2003 19:01:12 -0000
@@ -329,20 +329,6 @@
 # ------- Drag and Drop Message Text -----------
 CViewDragNDrop.txt = already exists. Would you like to overwrite it?
 
-# ----------- Build Property Page -----------
-BuildPropertyPage.label.Platform=Platform:
-BuildPropertyPage.label.Configuration=Configuration:
-BuildPropertyPage.label.Active=Active configuration
-BuildPropertyPage.label.Settings=Configuration settings
-BuildPropertyPage.label.AddConfButton=Manage...
-BuildPropertyPage.label.ToolTree=Tools
-BuildPropertyPage.label.ToolOptions=Options
-BuildPropertyPage.tip.platform=Select a platform for the project
-BuildPropertyPage.tip.config=Select the configuration to edit
-BuildPropertyPage.tip.addconf=Add configurations for the platform
-BuildPropertyPage.tip.remconf=Remove configurations for the platform
-BuildPropertyPage.manage.title=Manage Configurations
-
 # ----------- Build Property Common -----------
 BuildPropertyCommon.label.title=Enter Value
 BuildPropertyCommon.label.new=New...
@@ -353,10 +339,4 @@
 BuildPropertyCommon.label.addVar=Add
 BuildPropertyCommon.label.message=Value:
 BuildPropertyCommon.label.browse=Browse...
-BuildPropertyCommon.label.configs=Defined configurations:
-
-# ----------- New Configuration -----------
-NewConfiguration.label.name=Configuration name:
-NewConfiguration.label.copy=Copy settings from:
-NewConfiguration.error.title=Error
-NewConfiguration.error.duplicateName=A configuration named "{0}" already exists.
+BuildPropertyCommon.label.configs=Defined configurations:
\ No newline at end of file

Attachment: org.eclipse.cdt.managedbuilder.core.zip
Description: Zip archive

Attachment: org.eclipse.cdt.managedbuilder.ui.zip
Description: Zip archive

Attachment: org.eclipse.cdt.managedbuilder-feature.zip
Description: Zip archive


Back to the top