diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index 34087198d..c32f41e99 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -196,6 +196,7 @@ static protected boolean isCommandLine() { static protected void initPlatform() { + logger.debug("Platform and arch: " + osName()); try { Class platformClass = Class.forName("processing.app.Platform"); if (Base.isMacOS()) { @@ -1469,6 +1470,11 @@ static public int getPlatformIndex(String what) { // of conflicts that could happen with older versions of core.jar, where // the MACOSX constant would instead read as the LINUX constant. + static public String osName() { + String sysname = getPlatformName(); + String arch = System.getProperty("os.arch");; + return sysname + "_" + arch; + } /** * returns true if Processing is running on a Mac OS X machine. diff --git a/app/src/processing/app/debug/AvrdudeUploader.java b/app/src/processing/app/debug/AvrdudeUploader.java index 364f5ea32..570332069 100755 --- a/app/src/processing/app/debug/AvrdudeUploader.java +++ b/app/src/processing/app/debug/AvrdudeUploader.java @@ -92,18 +92,21 @@ public boolean uploadUsingPreferences(String buildPath, String className, boolea List parts = new ArrayList(); String command = null; - if (Base.isLinux()) { - command = bootloader.get("command_linux"); - } - if (Base.isWindows()) { - command = bootloader.get("command_windows"); + + + // Let's find the right command to use - starting from the most specific + // (os and arch), then just the os, and finally the generic command. + + command = bootloader.get("command_" + Base.osName()); + if (command == null) { + command = bootloader.get("command_" + Base.getPlatformName()); } - if (Base.isMacOS()) { - command = bootloader.get("command_macosx"); + if (command == null) { + command = bootloader.get("command"); } - // If not got an OS specific entry, fall back to the generic one. if (command == null) { - command = bootloader.get("command"); + logger.debug("ERROR: No command found for bootloader!"); + return false; } logger.debug("================ UPLOAD ================="); @@ -120,7 +123,9 @@ public boolean uploadUsingPreferences(String buildPath, String className, boolea String executable = spl.get(0); executable = executable.replace("\"", ""); if (Base.isWindows()) { - executable = executable + ".exe"; + if (executable.indexOf(".exe") == -1) { + executable = executable + ".exe"; + } } String variant = boardPreferences.get("build.variant"); diff --git a/build/build.xml b/build/build.xml index 422c1e964..38f32930b 100755 --- a/build/build.xml +++ b/build/build.xml @@ -24,6 +24,9 @@ + + + @@ -368,6 +371,10 @@ + + + + ======================================================= @@ -415,6 +422,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -451,6 +503,42 @@ + + + + + + + + + + + + + + + + + + + + ======================================================= + mpide for Raspberry Pi was built. Grab the archive from + + build/raspberrypi/mpide-${version}.tgz + ======================================================= + + + @@ -494,6 +582,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Package: mpide +Version: ${version} +Maintainer: matt@majenko.co.uk +Architecture: armhf +Section: Programming +Depends: avr-libc, avrdude, binutils-avr, extra-xdg-menus, gcc-avr, libftdi1, libjna-java, librxtx-java +Description: chipKIT MPIDE Development environment + + + + + + + + + + ======================================================= + mpide for Raspberry Pi was built. Grab the package from + + build/raspberrypi/mpide-${version}.deb + ======================================================= + + + @@ -722,7 +871,7 @@ Description: chipKIT MPIDE Development environment + depends="linux-clean, windows-clean, macosx-clean, raspberrypi-clean, subprojects-clean"> diff --git a/build/raspberrypi/dist/lib/.gitplaceholder b/build/raspberrypi/dist/lib/.gitplaceholder new file mode 100644 index 000000000..e69de29bb