diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java index 1d89a8fd062..009d8d34e9d 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java @@ -579,10 +579,12 @@ public class MbsMacroSupplier implements IBuildMacroSupplier { private IPath getOutputFilePath(IPath inputPath, IConfiguration cfg){ ITool buildTools[] = null; IResourceConfiguration rcCfg = cfg.getResourceConfiguration(inputPath.toString()); - if(rcCfg != null) + if(rcCfg != null) { buildTools = rcCfg.getToolsToInvoke(); - else + } + if (buildTools == null || buildTools.length == 0) { buildTools = cfg.getFilteredTools(); + } String name = null; IPath path = null; diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator.java index 3ebc511594d..a8fc14304b3 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator.java @@ -113,9 +113,10 @@ public class DefaultGCCDependencyCalculator implements IManagedDependencyGenerat String outflag = ""; //$NON-NLS-1$ String outputPrefix = ""; //$NON-NLS-1$ String outputFile = ""; //$NON-NLS-1$ - if( resConfig != null) { - ITool[] tools = resConfig.getToolsToInvoke(); - String cmd = tools[0].getToolCommand(); + ITool[] tools; + if( resConfig != null && (tools = resConfig.getToolsToInvoke()) != null && tools.length > 0) { + ITool tool = tools[0]; + String cmd = tool.getToolCommand(); //try to resolve the build macros in the tool command try{ String resolvedCommand = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(cmd, @@ -131,7 +132,7 @@ public class DefaultGCCDependencyCalculator implements IManagedDependencyGenerat String[] toolFlags = null; try { - toolFlags = tools[0].getToolCommandFlags(resource.getLocation(),null); + toolFlags = tool.getToolCommandFlags(resource.getLocation(),null); } catch( BuildException ex ) { // TODO add some routines to catch this toolFlags = EMPTY_STRING_ARRAY; @@ -144,9 +145,9 @@ public class DefaultGCCDependencyCalculator implements IManagedDependencyGenerat for (int i=0; i 0) { + tool = tools[0]; + } + } + if (tool == null) { tool = info.getToolFromInputExtension(inputExtension); }