2003-10-23 Bogdan Gheorghe
	Updated the indexManager.perfomConcurrentJob call in MakefileGenerator
	
2003-10-03 Sean Evoy
	Fix for critical bug 44134. 
	
	The problem lies in how the makefile is generated when a build target 
	references other projects. The makefile creates a command to change to 
	the build directory of the referenced project and call $(MAKE) there, i.e.
		cd <dep_project_build_dir>; $(MAKE) clean all 

	The problem arises when the directory change fails. As of RC0, the command 
	after the semi-colon is evaluated. Unfortunately, it evaluates to a recursive 
	make call in the build directory of the build target and 'make' will keep 
	invoking more 'make's until Eclipse runs out of memory. With a manual build, 
	the user can still cancel the build. When autobuild is turned on, they cannot. 
	The only way to shut down Eclipse under that scenario is to kill it, and when 
	it restarts, autobuild is still enabled and the problem repeats.

	The solution is to NOT perform the 'make' command if the 'cd' fails, i.e.
		cd <dep_project_build_dir> && $(MAKE) clean all 

	When the dependencies are generated this way, the 'cd' will fail as will the 
	build. The final tweak is to ignore the 'cd' failure and allow the rest of 
	the build to continue, i.e.
		-cd <dep_project_build_dir> && $(MAKE) clean all 
		
	*  src/org/eclipse/cdt/managedbuilder/internal/core/MakefileGenerator.java

2003-10-01 Sean Evoy
	Final fix for bugs 44020.
	The problem lay with the way that new projects were being created when the 
	root configuration of the project had tool references overriding options. 
	What the new configuration should have been doing is making a personal copy 
	of the tool reference and its options. Instead, they were all sharing the 
	parents. Seems simple enough now that I found it.
	 
	OptionReference provides a method to retreive its option (so new 
	OptionReferences can be cloned).
	* src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java
	
	Configuration now behaves correctly when it is created from another configuration.
	* src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java

2003-10-01 Sean Evoy
	Fix for bugs 43490 (trivial), 44020, and 43980.
	Added a new field to the schema for a tool. The attribute manages a list of 
	project natures that the tool should be filtered against in the build model 
	and UI.
	* schema/ManagedBuildTools.exsd
	
	Updated the ITool interface and its mplementors to pay attention to this new 
	attribute when loading from a plugin file. Clients can querry for a numeric 
	constant indicating the filter.
	* src/org/eclipse/cdt/managedbuilder/core/ITool.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java
	
	All the methods in managed build manager that access information stored in a tool 
	first check that the tool is valid for the project nature.
	*  src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java
	
	Put a safety check in the option reference constructor when reading one in from 
	a project file. I the option reference is to an option not managed by the build 
	model, the constructor does not add itself to the runtime representation of the 
	model.
	* src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java

	In preparation for 44020, each new target created is assigned a truly random ID.
	* src/org/eclipse/cdt/managedbuilder/internal/core/Target.java

2003-09-30 Sean Evoy
	Fix for bug 41826.
	
	Finished the use case for changing header files and triggering a build. I had 
	to add a new attribute to the build model schema to allow a build information 
	client to determine that a file is considered a header file.
	* schema/ManagedBuildTools.exsd
	
	The ITool, and its implementors now have a method to test if an extension is 
	considered to belong to a header file. The Tool also pays attention to the new 
	attribute when it reads itself in from the plugin file.
	* src/org/eclipse/cdt/managedbuilder/core/ITool.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java

	There is a method for clients of this information on the BuildInfo interface and 
	its implementor.
	* src/org/eclipse/cdt/managedbuilder/core/IManagedBuildInfo.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java
	
	The builder had to be tweaked in order to behave correctly on a build of an 
	empty project or non-managed projects.
	* src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java

	The makefile generator had to be tweaked to properly add folders that are effected 
	by header file changes.
	* src/org/eclipse/cdt/managedbuilder/internal/core/MakefileGenerator.java

2003-09-26 Sean Evoy
	A partial implementation for bug 41826. This patch contains the logic to properly 
	respond in the face of the following project changes:
	
	1. A generated project element, such as the build target or an intermediate file, 
	is deleted in the build project, or any projects it references.
	2. The build settings change in the build project or any projects it 
	references.
	
	In order to actually do this correctly, I had to stop being so precious during the 
	build. The makefile generator was was calculating the "build needed" state as it 
	walked the change delta. However, the Eclipse core has already determined that I 
	need to do a build. Further, as I discovered earlier, it doesn't always pass what 
	has changed in referenced projects as part of the delta. Essentially, that means I 
	will never be able to fully calculate the change set in the makefile generator's 
	delta visitor, and to even approximate a decent set of cases, the logic would quickly 
	bog down in complexity. 
	
	The solution is to trust Eclipse and alway invoke make when my incremental builder 
	is called. At worst, if there is no significant change, make will execute and 
	report nothing to be done.
	
	The modified makefile builder no longer asks the makefile generator if it should 
	build. It also no longer cares if the change set is empty (make will report that). 
	Since it responds to changes in referenced project's build information, it also 
	scrubs all relevant projects after building. Since a build might involve building 
	referenced project elements, those projects get their project views refreshed after 
	build. The build markers for referenced projects are removed prior to build.
	* src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
	
	The makefile generator has been simplified. The resource delta visitor logic no 
	longer trie to decide if a build should occur. The method to ask has been removed. 
	The class no longer throws an exception if the change set is empty. I am also a bit 
	more careful to call make with the right targets if a referenced project is built.
	* src/org/eclipse/cdt/managedbuilder/internal/core/MakefileGenerator.java
	
2003-09-26 Sean Evoy
	I added a fix to the builder and makefile generator to properly handle the following case.
	Project A depends on Project B. Something changes in project B and the user requests 
	that A be built. Inthis case, the incremental builder is invoked, but it is passed a 
	0-length delta on the top resource. Now, the logic of the builder is to treat that case as a 
	build event that triggers no makefile regeneration, just an invocation of make.
	
	Now handles the case where there is no flag applied to the make command and just 
	passes the targets as arguments.
	* src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
	
	The makefile generator now considers the case where the delta is for a project resource 
	and has no children. If so, it flags that a build is needed but no makefile generation 
	occurs. It also throws a new exception if the top makefile is not saved.
	* src/org/eclipse/cdt/managedbuilder/internal/core/MakefileGenerator.java

2003-09-25 Sean Evoy
	A patch to resolve the problem with refreshing the project after a build, or
	bug 42522 if you care about those sorts of things. The managed make builder was
	calling refresh at inside a bad if statement. I corrected that and projects 
	refresh correctly. Of course, if you have the wrong binary parser selected you are
	hosed. You will also notice that the string constants have been changed to 
	resolve to a different name. The standard builder uses this name and I wanted 
	to minimize the possibility of problems later.
	* src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
	
	Prepended "Managed" to the externalized string identifiers to avoid future overlap 
	with the standard build system. Had to update the makefile generator to use the 
	new identifiers.
	* src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties
	*  src/org/eclipse/cdt/managedbuilder/internal/core/MakefileGenerator.java
	
	Changed the signature of the 'getMakeArguments' to return a string instead of an 
	array so the builder can invoke make with the user-specified args. I also changed 
	the logic of the getMakeCommand method in the implementor so that it only returns 
	a string containing the command itself.
	* src/org/eclipse/cdt/managedbuilder/core/IManagedBuildInfo.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java

	Explicitly trim all arrays to size before converting them to String[] for Options 
	and Tools.
	*src/org/eclipse/cdt/managedbuilder/internal/core/Option.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
	
	Fixed a missing bit of logic in the Configuration when a user-object option is 
	deleted. Now the build model really does get rid of the the value.
	* src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
	
2003-09-25 Sean Evoy
	This patch contains a lot of changes needed to implement fixes for 42648 and 
	43122. 

	For 42648, the schema for the the target had to be modified to include a 
	comma-separated list of valid host platforms.
	* schema/ManagedBuildTools.exsd
	
	The target had to be updated to properly read in and understand this info, and
	the interface had to be updated to return a list to the clients in the UI. The 
	target was also changed slightly. It now uses a safer accessor method to get at 
	the list of tools it maintains. I have also stopped persisting non-variant info 
	to the project file on serialize. There are elements of the target that are not 
	subject to change by the user (yet) so they should not be saved.
	* src/org/eclipse/cdt/managedbuilder/core/ITarget.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/Target.java
	
	For 43122, I started by simply adding a tool reference to the configurations. 
	The tool reference had option references for debug and optimization levels. It 
	should have worked, but the model was not handling the inheritance properly. The 
	JUnit tests were not finding it because of how they were configured. It was most 
	evident in the UI. So, the way configurations and tool reference search for 
	overridden option references had to be modified. While I was in there, I cleaned 
	up some of the accessor and iteration code in ToolReference and OptionReference.
	
	For the configuration, the only significant change was a new search method to 
	find all option references for a given tool, no matter where they are stored. 
	The method had to consider what was overridden in a child config, what was added by 
	a child config, and what the parent (or parents) define.
	* src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
	
	Option reference now pays attention to overidden values in the plugin file. Until 
	now, it only handled the overrides in the project file.
	* src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java

	The ToolReference now distinguishes between local option references which it 
	manages directly, and option references held by tool references in the parent(s) 
	of its owner. It only serializes its own references, but when asked for options 
	relating to the tool it references, it replies with all option references in its 
	hierarchy.
	* src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java
	

2003-09-25 Bogdan Gheorghe
	Modified ResourceDeltaVisitor.visit() to use the new mechanism to get the
	projects that dependend a file.
	
	Modified addSourceDependencies() to use the new mechanism to perform a DependencyQueryJob
	
	* src/org/eclipse/cdt/managedbuilder/internal/core/MakeFileGenerator.java
	
2003-09-24 Sean Evoy
	Changed the implementor of IScannerInfo to answer only absolute paths when asked for 
	includes paths. Users will specify the includes paths in the managed build UI in such a way
	that the compiler will not complain. Either they will use absolute paths, or they will specify 
	them relative to the build directory. In the second case, it is easier for the managed builder 
	to convert the paths relative to this directory into absolute paths before replying tha it is for 
	the client to figure this out. 
	* 	src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java
	
2003-09-23 Sean Evoy
	All the work in this patch is for critical bug 43292. In order to manage 
	configurations, there had to be a method through ITarget to remove 
	configurations. Also, to support the naming of newly created configurations, 
	I added a name method to the IConfiguration interface. Finally, the ITarget 
	needed to support setting (and resetting) the make command to use when building.
	* src/org/eclipse/cdt/managedbuilder/core/IConfiguration.java
	* src/org/eclipse/cdt/managedbuilder/core/ITarget.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/Target.java

2003-09-19 Sean Evoy
	Added a new field to the target specification in the build model to 
	hard-code the binary parser for project creation. There is a new getter 
	method in the interface and the implementor contains additional code to 
	extract the information from a project file or plugin manifest. The 
	interface also contains new strings to make changing the specification 
	easier in the future.
	* schema/ManagedBuildTools.exsd
	* src/org/eclipse/cdt/managedbuilder/core/ITarget.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/Target.java
	
	Fix for bug 41720: libraries are now found for Solaris and Linux 
	executables. The problem was the executable had no extension and 
	the client of the build model passed null instead of the empty string.
	* src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/MakefileGenerator.java

2003-09-16 Sean Evoy
	Patch contains a fix for bug 43017. Renamed the "addDeps" method to a 
	more descriptive "addSourceDependencies". Added a flag when the 
	inter-project dependencies are calculated so that clean and all are 
	properly passed to the make invocation. Finally, I replaced the hard-coded
	'make' with $(MAKE)
	* src/org/eclipse/cdt/managedbuilder/internal/core/MakefileGenerator.java
	
	It also contains some more work on 41826, specifically on the logic to
	implement a rebuild when the build settings change. The builder checks for 
	a build model change whenever a build is requested and responds appropriately. 
	The make targets (i.e. 'clean' and 'all') are also calculated differently now.
	* src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
	
	The build model was modified to set a dirty flag when an option changes. I also
	made a change to avoid an NPE when the build info was loaded.
	* src/org/eclipse/cdt/managedbuilder/core/IManagedBuildInfo.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java
	* src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
	

2003-09-15 Sean Evoy
	First submission of code to new project. Moved the managed builder 
	source code out of the cdt.core project. This includes the code to 
	implement the build model, along with the shema and extension point 
	declaration. Moved the builder, scnanaer info provider and managed 
	nature definitions into the package as well.
	
	There are 2 new classes to handle the externalized strings:
	* src/org/eclipse/cdt/managedbuilder/core/ManagedBuilderCorePlugin.java
	* src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties