From 0f05a323c31814636e42fe9c97f7c5db57a2345f Mon Sep 17 00:00:00 2001 From: Mikhail Sennikovsky Date: Tue, 18 Sep 2007 11:16:09 +0000 Subject: [PATCH] Fix for [Bug 203672] make: *** No rule to make target 'clean' for empty clean --- .../internal/core/CommonBuilder.java | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/CommonBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/CommonBuilder.java index 537ee6dbac5..b0e45b84b41 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/CommonBuilder.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/CommonBuilder.java @@ -1525,22 +1525,27 @@ public class CommonBuilder extends ACBuilder { performExternalClean(bInfo, false, monitor); } else { boolean programmatically = true; - if(!cfg.getEditableBuilder().isInternalBuilder()){ - fBuildErrOccured = false; - try { - performExternalClean(bInfo, false, monitor); - } catch (CoreException e) { - fBuildErrOccured = true; - } - if(!fBuildErrOccured) - programmatically = false; - } + IPath path = ManagedBuildManager.getBuildFullPath(cfg, bInfo.getBuilder()); + IResource rc = path != null ? ResourcesPlugin.getWorkspace().getRoot().findMember(path) : null; - if(programmatically){ - try { - cleanWithInternalBuilder(bInfo, monitor); - } catch (CoreException e) { - cleanProgrammatically(bInfo, monitor); + if(path == null || (rc != null && rc.getType() != IResource.FILE)){ + if(!cfg.getEditableBuilder().isInternalBuilder()){ + fBuildErrOccured = false; + try { + performExternalClean(bInfo, false, monitor); + } catch (CoreException e) { + fBuildErrOccured = true; + } + if(!fBuildErrOccured) + programmatically = false; + } + + if(programmatically){ + try { + cleanWithInternalBuilder(bInfo, monitor); + } catch (CoreException e) { + cleanProgrammatically(bInfo, monitor); + } } } }