diff options
author | Nicolás Reynolds <fauno@endefensadelsl.org> | 2014-02-18 01:56:34 +0000 |
---|---|---|
committer | Nicolás Reynolds <fauno@endefensadelsl.org> | 2014-02-18 01:56:34 +0000 |
commit | 8185891e28635bdb83fdf4ba4391030912dae596 (patch) | |
tree | 66a946535bdd228514750233b2cc99dd1866ff64 /java/arduino | |
parent | 60a11f87366fdfbd114cdc91ff813518858e5f8d (diff) |
Tue Feb 18 01:56:27 UTC 2014
Diffstat (limited to 'java/arduino')
-rw-r--r-- | java/arduino/PKGBUILD | 106 | ||||
-rw-r--r-- | java/arduino/arduino.desktop | 9 | ||||
-rw-r--r-- | java/arduino/arduino.install | 9 | ||||
-rw-r--r-- | java/arduino/arduino.png | bin | 0 -> 47981 bytes | |||
-rw-r--r-- | java/arduino/avrlibc-signals.patch | 87 | ||||
-rw-r--r-- | java/arduino/external-avrtools.patch | 28 |
6 files changed, 239 insertions, 0 deletions
diff --git a/java/arduino/PKGBUILD b/java/arduino/PKGBUILD new file mode 100644 index 000000000..aeb46feee --- /dev/null +++ b/java/arduino/PKGBUILD @@ -0,0 +1,106 @@ +# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> +# Maintainer (AUR): PyroPeter <googlemail.com@abi1789> + +pkgname=arduino +pkgver=1.0.2 +pkgrel=1 +pkgdesc="Arduino SDK and IDE" +arch=('i686' 'x86_64') +url="http://arduino.cc/en/Main/Software" +options=(!strip) +license=('GPL') + +depends=('avr-gcc' 'avr-libc' 'libusb-compat' 'java-runtime' 'avrdude' + 'java-rxtx' 'antlr2' 'eclipse-ecj' 'jna') +makedepends=(java-environment apache-ant makepkg-git) +install="arduino.install" +source=("http://arduino.googlecode.com/files/arduino-$pkgver-src.tar.gz" + 'avrlibc-signals.patch' + 'external-avrtools.patch' + 'arduino.png' + 'arduino.desktop') + +unset _JAVA_OPTIONS +. /etc/profile.d/jdk.sh + +prepare() { + cd "$srcdir/arduino-$pkgver" + find . -name '*.hex' -delete + find . -name '*.jar' -delete + find . -name '*.so' -delete + find . -name '*.swp' -delete + rm -f build/linux/dist/tools/avrdude* + rm -rf hardware/arduino/firmwares/wifishield +} + +_link_jars() { + for jar in RXTXcomm.jar antlr2.jar ecj.jar jna.jar; do + ln -sf /usr/share/java/$jar . + done +} + +_patch() { + cd "$srcdir/arduino-$pkgver" + + # Fix issue 955 to be compatible with newer versions of avr-libc + # https://code.google.com/p/arduino/issues/detail?id=955 + # Note: this patch is not the patch given in the comments + patch -Np1 -i "$srcdir/avrlibc-signals.patch" + grep -rl 'SIGNAL\s*(' . | xargs sed -ri 's/SIGNAL\s*\(([^)]*_vect)\)/ISR(\1)/g' + + # Don't look for pre-compiled avr-tools + patch -Np1 -i "$srcdir/external-avrtools.patch" + + rm -rf app/src/processing/app/macosx + + cd app/lib + _link_jars +} + +build() { + _patch + + # build submodules + for submodule in core/methods core/preproc; do + cd "$srcdir/arduino-$pkgver/$submodule" + ant + done + + # build the main package + cd "$srcdir/arduino-$pkgver/build" + log=`mktemp` + ant 2>&1|tee "$log" + if egrep -q 'Error|FAILED' "$log"; then + rm "$log" + false + else + rm "$log" + fi + + # symlink jar files to the system locations + cd "linux/work/lib" + _link_jars +} + +package() { + cd "$srcdir/arduino-$pkgver/build/linux/work" + + install -d "$pkgdir"/usr/{bin,share/{doc,applications,pixmaps}} + + # copy the whole SDK to /usr/share/arduino/ + cp -r . "$pkgdir/usr/share/arduino" + + # at least support the FHS a little bit: + ln -s ../share/arduino/arduino "$pkgdir/usr/bin/arduino" + ln -s ../arduino/reference "$pkgdir/usr/share/doc/arduino" + + # desktop icon + install -m644 "$srcdir/arduino.desktop" "$pkgdir/usr/share/applications/" + install -m644 "$srcdir/arduino.png" "$pkgdir/usr/share/pixmaps/" +} + +md5sums=('dfb64e2a7de4a4a8b872732fe90e3249' + 'e44975d31aa1770e4f5ac6e6867b0864' + '9c696c2361d57027be41ae64436182aa' + '9e36d33891d5e68d38ec55d1494499a5' + 'eebc4d6495864bea99ad057af801afb9') diff --git a/java/arduino/arduino.desktop b/java/arduino/arduino.desktop new file mode 100644 index 000000000..8469724ea --- /dev/null +++ b/java/arduino/arduino.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Arduino +GenericName=Arduino IDE +Comment=The open-source Arduino environment +Exec=arduino +Icon=arduino +Type=Application +Terminal=false +Categories=Development;IDE;Qt;KDE;;Application; diff --git a/java/arduino/arduino.install b/java/arduino/arduino.install new file mode 100644 index 000000000..c222e1b6d --- /dev/null +++ b/java/arduino/arduino.install @@ -0,0 +1,9 @@ +post_install() { + xdg-icon-resource install --size 256 --novendor /usr/share/pixmaps/arduino.png +} + +pre_remove() { + xdg-icon-resource uninstall --size 256 arduino +} + +# vim:set ts=2 sw=2 et: diff --git a/java/arduino/arduino.png b/java/arduino/arduino.png Binary files differnew file mode 100644 index 000000000..ea3ac81b4 --- /dev/null +++ b/java/arduino/arduino.png diff --git a/java/arduino/avrlibc-signals.patch b/java/arduino/avrlibc-signals.patch new file mode 100644 index 000000000..d9c743cc6 --- /dev/null +++ b/java/arduino/avrlibc-signals.patch @@ -0,0 +1,87 @@ +diff -ruN arduino-1.0.2.orig/hardware/arduino/cores/arduino/HardwareSerial.cpp arduino-1.0.2/hardware/arduino/cores/arduino/HardwareSerial.cpp +--- arduino-1.0.2.orig/hardware/arduino/cores/arduino/HardwareSerial.cpp 2012-11-04 16:29:10.000000000 -0500 ++++ arduino-1.0.2/hardware/arduino/cores/arduino/HardwareSerial.cpp 2012-12-03 15:35:06.000000000 -0500 +@@ -89,9 +89,7 @@ + #if !defined(USART0_RX_vect) && defined(USART1_RX_vect) + // do nothing - on the 32u4 the first USART is USART1 + #else +-#if !defined(USART_RX_vect) && !defined(SIG_USART0_RECV) && \ +- !defined(SIG_UART0_RECV) && !defined(USART0_RX_vect) && \ +- !defined(SIG_UART_RECV) ++#if !defined(USART_RX_vect) && !defined(USART0_RX_vect) + #error "Don't know what the Data Received vector is called for the first UART" + #else + void serialEvent() __attribute__((weak)); +@@ -99,14 +97,8 @@ + #define serialEvent_implemented + #if defined(USART_RX_vect) + SIGNAL(USART_RX_vect) +-#elif defined(SIG_USART0_RECV) +- SIGNAL(SIG_USART0_RECV) +-#elif defined(SIG_UART0_RECV) +- SIGNAL(SIG_UART0_RECV) + #elif defined(USART0_RX_vect) + SIGNAL(USART0_RX_vect) +-#elif defined(SIG_UART_RECV) +- SIGNAL(SIG_UART_RECV) + #endif + { + #if defined(UDR0) +@@ -143,8 +135,6 @@ + unsigned char c = UDR1; + }; + } +-#elif defined(SIG_USART1_RECV) +- #error SIG_USART1_RECV + #endif + + #if defined(USART2_RX_vect) && defined(UDR2) +@@ -160,8 +150,6 @@ + unsigned char c = UDR2; + }; + } +-#elif defined(SIG_USART2_RECV) +- #error SIG_USART2_RECV + #endif + + #if defined(USART3_RX_vect) && defined(UDR3) +@@ -177,8 +165,6 @@ + unsigned char c = UDR3; + }; + } +-#elif defined(SIG_USART3_RECV) +- #error SIG_USART3_RECV + #endif + + void serialEventRun(void) +diff -ruN arduino-1.0.2.orig/hardware/arduino/cores/arduino/HardwareSerial.h arduino-1.0.2/hardware/arduino/cores/arduino/HardwareSerial.h +--- arduino-1.0.2.orig/hardware/arduino/cores/arduino/HardwareSerial.h 2012-11-04 16:29:10.000000000 -0500 ++++ arduino-1.0.2/hardware/arduino/cores/arduino/HardwareSerial.h 2012-12-03 15:35:06.000000000 -0500 +@@ -126,6 +126,15 @@ + #endif + #endif + ++/* ++ * on ATmega8, the uart and its bits are not numbered, so there is no "TXC0" ++ * definition. It is slightly cleaner to define this here instead of having ++ * conditional code in the cpp module. ++ */ ++#if !defined(TXC0) ++#define TXC0 TXC ++#endif ++ + extern void serialEventRun(void) __attribute__((weak)); + + #endif +diff -ruN arduino-1.0.2.orig/hardware/arduino/cores/arduino/WInterrupts.c arduino-1.0.2/hardware/arduino/cores/arduino/WInterrupts.c +--- arduino-1.0.2.orig/hardware/arduino/cores/arduino/WInterrupts.c 2012-11-04 16:29:11.000000000 -0500 ++++ arduino-1.0.2/hardware/arduino/cores/arduino/WInterrupts.c 2012-12-03 15:37:08.000000000 -0500 +@@ -314,7 +314,7 @@ + #endif + + /* +-SIGNAL(SIG_2WIRE_SERIAL) { ++ISR(TWI_vect) { + if(twiIntFunc) + twiIntFunc(); + } diff --git a/java/arduino/external-avrtools.patch b/java/arduino/external-avrtools.patch new file mode 100644 index 000000000..a47575b53 --- /dev/null +++ b/java/arduino/external-avrtools.patch @@ -0,0 +1,28 @@ +diff -ru arduino-1.0.2.orig/build/build.xml arduino-1.0.2/build/build.xml +--- arduino-1.0.2.orig/build/build.xml 2012-11-04 16:29:09.000000000 -0500 ++++ arduino-1.0.2/build/build.xml 2012-12-03 15:22:39.000000000 -0500 +@@ -353,24 +353,9 @@ + </target> + + <target name="linux32-build" depends="linux-build" description="Build linux (32-bit) version"> +- <!-- Unzip AVR tools --> +- <exec executable="tar" dir="linux/work/hardware"> +- <arg value="-xjf"/> +- <arg value="../../avr_tools_linux32.tar.bz2"/> +- </exec> + </target> + + <target name="linux64-build" depends="linux-build" description="Build linux (64-bit) version"> +- <copy tofile="linux/work/hardware/tools/avrdude" file="linux/dist/tools/avrdude64" overwrite="true" /> +- <copy tofile="linux/work/lib/librxtxSerial.so" file="linux/dist/lib/librxtxSerial64.so" overwrite="true" /> +- +- <chmod perm="755" file="linux/work/hardware/tools/avrdude" /> +- +- <!-- Unzip AVR tools --> +- <exec executable="tar" dir="linux/work/hardware"> +- <arg value="-xjf"/> +- <arg value="../../avr_tools_linux64.tar.bz2"/> +- </exec> + </target> + + <target name="linux32-run" depends="linux32-build" |