From c9d4630d2b5f01598ce0561eaa70748208393b5f Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Wed, 7 Sep 2011 20:00:06 +0200 Subject: [PATCH] Fallback on system avrdude if Arduino avrdude isn't present (Linux). --- .../processing/app/debug/AvrdudeUploader.java | 19 +++++++++++-------- app/src/processing/app/debug/Uploader.java | 11 ----------- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/app/src/processing/app/debug/AvrdudeUploader.java b/app/src/processing/app/debug/AvrdudeUploader.java index a30f56614..2fec8f6f6 100755 --- a/app/src/processing/app/debug/AvrdudeUploader.java +++ b/app/src/processing/app/debug/AvrdudeUploader.java @@ -176,14 +176,17 @@ public class AvrdudeUploader extends Uploader { public boolean avrdude(Collection params) throws RunnerException { List commandDownloader = new ArrayList(); - commandDownloader.add("avrdude"); - - // Point avrdude at its config file since it's in a non-standard location. - if (Base.isLinux()) { - // ???: is it better to have Linux users install avrdude themselves, in - // a way that it can find its own configuration file? - commandDownloader.add("-C" + Base.getHardwarePath() + "/tools/avrdude.conf"); - } else { + + if(Base.isLinux()) { + if ((new File(Base.getHardwarePath() + "/tools/" + "avrdude")).exists()) { + commandDownloader.add(Base.getHardwarePath() + "/tools/" + "avrdude"); + commandDownloader.add("-C" + Base.getHardwarePath() + "/tools/avrdude.conf"); + } else { + commandDownloader.add("avrdude"); + } + } + else { + commandDownloader.add(Base.getHardwarePath() + "/tools/avr/bin/" + "avrdude"); commandDownloader.add("-C" + Base.getHardwarePath() + "/tools/avr/etc/avrdude.conf"); } diff --git a/app/src/processing/app/debug/Uploader.java b/app/src/processing/app/debug/Uploader.java index 03d8f2f30..71739f129 100755 --- a/app/src/processing/app/debug/Uploader.java +++ b/app/src/processing/app/debug/Uploader.java @@ -114,17 +114,6 @@ public abstract class Uploader implements MessageConsumer { String[] commandArray = new String[commandDownloader.size()]; commandDownloader.toArray(commandArray); - String avrBasePath; - - if(Base.isLinux()) { - avrBasePath = new String(Base.getHardwarePath() + "/tools/"); - } - else { - avrBasePath = new String(Base.getHardwarePath() + "/tools/avr/bin/"); - } - - commandArray[0] = avrBasePath + commandArray[0]; - if (verbose || Preferences.getBoolean("upload.verbose")) { for(int i = 0; i < commandArray.length; i++) { System.out.print(commandArray[i] + " ");