summaryrefslogtreecommitdiff
path: root/java/arduino
diff options
context:
space:
mode:
Diffstat (limited to 'java/arduino')
-rw-r--r--java/arduino/PKGBUILD101
-rw-r--r--java/arduino/arduino.desktop9
-rw-r--r--java/arduino/arduino.install10
-rw-r--r--java/arduino/arduino.pngbin0 -> 47981 bytes
-rw-r--r--java/arduino/sig-patch.diff256
5 files changed, 376 insertions, 0 deletions
diff --git a/java/arduino/PKGBUILD b/java/arduino/PKGBUILD
new file mode 100644
index 000000000..426664a37
--- /dev/null
+++ b/java/arduino/PKGBUILD
@@ -0,0 +1,101 @@
+# Maintainer: PyroPeter <googlemail.com@abi1789>
+
+pkgname=arduino
+pkgver=1.0.1
+pkgrel=2
+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 jh)
+install="arduino.install"
+source=("http://arduino.googlecode.com/files/arduino-$pkgver-src.tar.gz"
+ 'sig-patch.diff'
+ 'arduino.png'
+ 'arduino.desktop')
+
+unset _JAVA_OPTIONS
+. /etc/profile.d/jdk.sh
+
+mksource() {
+ cd "$srcdir/arduino-$pkgver"
+ find . -name '*.jar' -delete
+ find . -name '*.swp' -delete
+ find . -name '*.so' -delete
+ rm -rf build/linux/dist/*/*
+}
+
+build() {
+ cd "$srcdir/arduino-$pkgver"
+ eval `jh mksource build/shared/reference.zip`
+
+ cd "$srcdir"
+ mkdir empty.d
+ cd empty.d
+ bsdtar cjf ../empty.tar.bz2 .
+ cd ..
+ rmdir empty.d
+
+ 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/sig-patch.diff"
+
+ #ln -s /.../RXTXcomm.jar app/lib # already on the classpath
+ ln -s /usr/share/java/antlr2.jar app/lib/antlr.jar
+ #ln -s /.../apple.jar app/lib # only used on Mac OS
+ ln -s /usr/share/java/ecj.jar app/lib
+ ln -s /usr/share/java/jna.jar app/lib
+ ln -s /usr/bin/avrdude build/linux/dist/tools
+
+ ln -s "$srcdir/empty.tar.bz2" build/linux/avr_tools_linux32.tar.bz2
+ ln -s "$srcdir/empty.tar.bz2" build/linux/avr_tools_linux64.tar.bz2
+
+ for d in methods preproc; do
+ cd "$srcdir/arduino-$pkgver/core/$d"
+ ant
+ done
+
+ 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
+}
+
+package() {
+ cd "$srcdir/arduino-$pkgver/build/linux/work"
+
+ # arduino excutable should accept arguments
+ sed -i 's|^java .* processing.app.Base$|\0 "$@"|' arduino
+ sed -i 's|^APPDIR=.*|APPDIR=/usr/share/arduino|' arduino
+
+ mkdir -p "$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:
+ install -m755 "arduino" "$pkgdir/usr/bin/arduino"
+ ln -s /usr/share/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=('03263613f4be4f865989244420be04fa'
+ 'acadc724cbe08c09711825f4bd5c04f6'
+ '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..35d283fab
--- /dev/null
+++ b/java/arduino/arduino.install
@@ -0,0 +1,10 @@
+post_install() {
+ xdg-icon-resource install --size 256 --novendor /usr/share/pixmaps/arduino.png
+ echo "Don't forget to add yourself to the uucp group: gpasswd -a <user> uucp"
+}
+
+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
new file mode 100644
index 000000000..ea3ac81b4
--- /dev/null
+++ b/java/arduino/arduino.png
Binary files differ
diff --git a/java/arduino/sig-patch.diff b/java/arduino/sig-patch.diff
new file mode 100644
index 000000000..4be3a6cdc
--- /dev/null
+++ b/java/arduino/sig-patch.diff
@@ -0,0 +1,256 @@
+diff -ruN arduino-1.0.1.orig/hardware/arduino/cores/arduino/HardwareSerial.cpp arduino-1.0.1/hardware/arduino/cores/arduino/HardwareSerial.cpp
+--- arduino-1.0.1.orig/hardware/arduino/cores/arduino/HardwareSerial.cpp 2012-05-21 13:01:43.000000000 -0400
++++ arduino-1.0.1/hardware/arduino/cores/arduino/HardwareSerial.cpp 2012-10-19 23:26:46.000000000 -0400
+@@ -88,24 +88,16 @@
+ #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));
+ void serialEvent() {}
+ #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)
++ ISR(USART_RX_vect)
+ #elif defined(USART0_RX_vect)
+- SIGNAL(USART0_RX_vect)
+-#elif defined(SIG_UART_RECV)
+- SIGNAL(SIG_UART_RECV)
++ ISR(USART0_RX_vect)
+ #endif
+ {
+ #if defined(UDR0)
+@@ -124,39 +116,33 @@
+ void serialEvent1() __attribute__((weak));
+ void serialEvent1() {}
+ #define serialEvent1_implemented
+- SIGNAL(USART1_RX_vect)
++ ISR(USART1_RX_vect)
+ {
+ unsigned char c = UDR1;
+ store_char(c, &rx_buffer1);
+ }
+-#elif defined(SIG_USART1_RECV)
+- #error SIG_USART1_RECV
+ #endif
+
+ #if defined(USART2_RX_vect) && defined(UDR2)
+ void serialEvent2() __attribute__((weak));
+ void serialEvent2() {}
+ #define serialEvent2_implemented
+- SIGNAL(USART2_RX_vect)
++ ISR(USART2_RX_vect)
+ {
+ unsigned char c = UDR2;
+ store_char(c, &rx_buffer2);
+ }
+-#elif defined(SIG_USART2_RECV)
+- #error SIG_USART2_RECV
+ #endif
+
+ #if defined(USART3_RX_vect) && defined(UDR3)
+ void serialEvent3() __attribute__((weak));
+ void serialEvent3() {}
+ #define serialEvent3_implemented
+- SIGNAL(USART3_RX_vect)
++ ISR(USART3_RX_vect)
+ {
+ unsigned char c = UDR3;
+ store_char(c, &rx_buffer3);
+ }
+-#elif defined(SIG_USART3_RECV)
+- #error SIG_USART3_RECV
+ #endif
+
+ void serialEventRun(void)
+diff -ruN arduino-1.0.1.orig/hardware/arduino/cores/arduino/HardwareSerial.h arduino-1.0.1/hardware/arduino/cores/arduino/HardwareSerial.h
+--- arduino-1.0.1.orig/hardware/arduino/cores/arduino/HardwareSerial.h 2012-05-21 13:01:43.000000000 -0400
++++ arduino-1.0.1/hardware/arduino/cores/arduino/HardwareSerial.h 2012-10-19 23:13:59.000000000 -0400
+@@ -76,6 +76,15 @@
+ extern HardwareSerial Serial3;
+ #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.1.orig/hardware/arduino/cores/arduino/WInterrupts.c arduino-1.0.1/hardware/arduino/cores/arduino/WInterrupts.c
+--- arduino-1.0.1.orig/hardware/arduino/cores/arduino/WInterrupts.c 2012-05-21 13:01:43.000000000 -0400
++++ arduino-1.0.1/hardware/arduino/cores/arduino/WInterrupts.c 2012-10-19 23:13:59.000000000 -0400
+@@ -216,72 +216,72 @@
+ */
+
+ #if defined(__AVR_ATmega32U4__)
+-SIGNAL(INT0_vect) {
++ISR(INT0_vect) {
+ if(intFunc[EXTERNAL_INT_0])
+ intFunc[EXTERNAL_INT_0]();
+ }
+
+-SIGNAL(INT1_vect) {
++ISR(INT1_vect) {
+ if(intFunc[EXTERNAL_INT_1])
+ intFunc[EXTERNAL_INT_1]();
+ }
+
+ #elif defined(EICRA) && defined(EICRB)
+
+-SIGNAL(INT0_vect) {
++ISR(INT0_vect) {
+ if(intFunc[EXTERNAL_INT_2])
+ intFunc[EXTERNAL_INT_2]();
+ }
+
+-SIGNAL(INT1_vect) {
++ISR(INT1_vect) {
+ if(intFunc[EXTERNAL_INT_3])
+ intFunc[EXTERNAL_INT_3]();
+ }
+
+-SIGNAL(INT2_vect) {
++ISR(INT2_vect) {
+ if(intFunc[EXTERNAL_INT_4])
+ intFunc[EXTERNAL_INT_4]();
+ }
+
+-SIGNAL(INT3_vect) {
++ISR(INT3_vect) {
+ if(intFunc[EXTERNAL_INT_5])
+ intFunc[EXTERNAL_INT_5]();
+ }
+
+-SIGNAL(INT4_vect) {
++ISR(INT4_vect) {
+ if(intFunc[EXTERNAL_INT_0])
+ intFunc[EXTERNAL_INT_0]();
+ }
+
+-SIGNAL(INT5_vect) {
++ISR(INT5_vect) {
+ if(intFunc[EXTERNAL_INT_1])
+ intFunc[EXTERNAL_INT_1]();
+ }
+
+-SIGNAL(INT6_vect) {
++ISR(INT6_vect) {
+ if(intFunc[EXTERNAL_INT_6])
+ intFunc[EXTERNAL_INT_6]();
+ }
+
+-SIGNAL(INT7_vect) {
++ISR(INT7_vect) {
+ if(intFunc[EXTERNAL_INT_7])
+ intFunc[EXTERNAL_INT_7]();
+ }
+
+ #else
+
+-SIGNAL(INT0_vect) {
++ISR(INT0_vect) {
+ if(intFunc[EXTERNAL_INT_0])
+ intFunc[EXTERNAL_INT_0]();
+ }
+
+-SIGNAL(INT1_vect) {
++ISR(INT1_vect) {
+ if(intFunc[EXTERNAL_INT_1])
+ intFunc[EXTERNAL_INT_1]();
+ }
+
+ #if defined(EICRA) && defined(ISC20)
+-SIGNAL(INT2_vect) {
++ISR(INT2_vect) {
+ if(intFunc[EXTERNAL_INT_2])
+ intFunc[EXTERNAL_INT_2]();
+ }
+@@ -290,9 +290,8 @@
+ #endif
+
+ /*
+-SIGNAL(SIG_2WIRE_SERIAL) {
++ISR(TWI_vect) {
+ if(twiIntFunc)
+ twiIntFunc();
+ }
+ */
+-
+diff -ruN arduino-1.0.1.orig/hardware/arduino/cores/arduino/wiring.c arduino-1.0.1/hardware/arduino/cores/arduino/wiring.c
+--- arduino-1.0.1.orig/hardware/arduino/cores/arduino/wiring.c 2012-05-21 13:01:43.000000000 -0400
++++ arduino-1.0.1/hardware/arduino/cores/arduino/wiring.c 2012-10-19 23:13:59.000000000 -0400
+@@ -42,9 +42,9 @@
+ static unsigned char timer0_fract = 0;
+
+ #if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
+-SIGNAL(TIM0_OVF_vect)
++ISR(TIM0_OVF_vect)
+ #else
+-SIGNAL(TIMER0_OVF_vect)
++ISR(TIMER0_OVF_vect)
+ #endif
+ {
+ // copy these to local variables so they can be stored in registers
+diff -ruN arduino-1.0.1.orig/libraries/Servo/Servo.cpp arduino-1.0.1/libraries/Servo/Servo.cpp
+--- arduino-1.0.1.orig/libraries/Servo/Servo.cpp 2012-05-08 20:34:38.000000000 -0400
++++ arduino-1.0.1/libraries/Servo/Servo.cpp 2012-10-19 23:13:59.000000000 -0400
+@@ -100,28 +100,28 @@
+ #ifndef WIRING // Wiring pre-defines signal handlers so don't define any if compiling for the Wiring platform
+ // Interrupt handlers for Arduino
+ #if defined(_useTimer1)
+-SIGNAL (TIMER1_COMPA_vect)
++ISR(TIMER1_COMPA_vect)
+ {
+ handle_interrupts(_timer1, &TCNT1, &OCR1A);
+ }
+ #endif
+
+ #if defined(_useTimer3)
+-SIGNAL (TIMER3_COMPA_vect)
++ISR(TIMER3_COMPA_vect)
+ {
+ handle_interrupts(_timer3, &TCNT3, &OCR3A);
+ }
+ #endif
+
+ #if defined(_useTimer4)
+-SIGNAL (TIMER4_COMPA_vect)
++ISR(TIMER4_COMPA_vect)
+ {
+ handle_interrupts(_timer4, &TCNT4, &OCR4A);
+ }
+ #endif
+
+ #if defined(_useTimer5)
+-SIGNAL (TIMER5_COMPA_vect)
++ISR(TIMER5_COMPA_vect)
+ {
+ handle_interrupts(_timer5, &TCNT5, &OCR5A);
+ }
+diff -ruN arduino-1.0.1.orig/libraries/Wire/utility/twi.c arduino-1.0.1/libraries/Wire/utility/twi.c
+--- arduino-1.0.1.orig/libraries/Wire/utility/twi.c 2012-02-18 19:57:03.000000000 -0500
++++ arduino-1.0.1/libraries/Wire/utility/twi.c 2012-10-19 23:13:59.000000000 -0400
+@@ -360,7 +360,7 @@
+ twi_state = TWI_READY;
+ }
+
+-SIGNAL(TWI_vect)
++ISR(TWI_vect)
+ {
+ switch(TW_STATUS){
+ // All Master