diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java index e8a59f0f935..4512ab269ab 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java @@ -198,16 +198,8 @@ public class GeneratedMakefileBuilder extends ACBuilder { } } - // Scrub the build info of all the projects participating in the build + // Scrub the build info the project info.setRebuildState(false); - for (int i = 0; i < referencedProjects.length; i++) { - IProject project = referencedProjects[i]; - IManagedBuildInfo depInfo = ManagedBuildManager.getBuildInfo(project); - // May not be a managed project - if (depInfo != null) { - depInfo.setRebuildState(false); - } - } // Ask build mechanism to compute deltas for project dependencies next time return referencedProjects; diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java index c6a2c53552c..e3fe65e59c9 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java @@ -574,7 +574,7 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator { /* * Write out the target rule as: - * targ_.: $(OBJS) + * targ_.: $(OBJS) * @echo 'Building target: $@' * $(BUILD_TOOL) $(FLAGS) $(OUTPUT_FLAG) $@ $(OBJS) $(USER_OBJS) $(LIB_DEPS) * @echo 'Finished building: $@' @@ -585,6 +585,10 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator { buffer.append(DOT + extension); } buffer.append(COLON + WHITESPACE + "$(OBJS)"); //$NON-NLS-1$ + Iterator refIter = managedProjectOutputs.listIterator(); + while (refIter.hasNext()) { + buffer.append(WHITESPACE + (String)refIter.next()); + } buffer.append(NEWLINE); buffer.append(TAB + AT + ECHO + WHITESPACE + SINGLE_QUOTE + MESSAGE_START_BUILD + WHITESPACE + OUT_MACRO + SINGLE_QUOTE + NEWLINE); buffer.append(TAB + cmd + WHITESPACE + flags + WHITESPACE + outflag + WHITESPACE + OUT_MACRO + WHITESPACE + "$(OBJS) $(USER_OBJS) $(LIBS)" + NEWLINE); //$NON-NLS-1$ @@ -598,7 +602,13 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator { } buffer.append(NEWLINE + NEWLINE); - buffer.append(".PHONY: all clean dependents" + NEWLINE + NEWLINE); //$NON-NLS-1$ + // Add all the eneded dummy and phony targets + buffer.append(".PHONY: all clean dependents" + NEWLINE); //$NON-NLS-1$ + refIter = managedProjectOutputs.listIterator(); + while(refIter.hasNext()) { + buffer.append((String)refIter.next() + COLON + NEWLINE); + } + buffer.append(NEWLINE); // Include makefile.targets supplemental makefile buffer.append("-include $(ROOT)" + SEPARATOR + MAKEFILE_TARGETS + NEWLINE); //$NON-NLS-1$