diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/arduino/PKGBUILD | 91 | ||||
-rw-r--r-- | java/arduino/arduino.install | 1 | ||||
-rw-r--r-- | java/arduino/avrlibc-signals.patch | 87 | ||||
-rw-r--r-- | java/arduino/external-avrtools.patch | 28 | ||||
-rw-r--r-- | java/arduino/sig-patch.diff | 256 |
5 files changed, 163 insertions, 300 deletions
diff --git a/java/arduino/PKGBUILD b/java/arduino/PKGBUILD index 426664a37..aeb46feee 100644 --- a/java/arduino/PKGBUILD +++ b/java/arduino/PKGBUILD @@ -1,8 +1,9 @@ -# Maintainer: PyroPeter <googlemail.com@abi1789> +# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> +# Maintainer (AUR): PyroPeter <googlemail.com@abi1789> pkgname=arduino -pkgver=1.0.1 -pkgrel=2 +pkgver=1.0.2 +pkgrel=1 pkgdesc="Arduino SDK and IDE" arch=('i686' 'x86_64') url="http://arduino.cc/en/Main/Software" @@ -11,91 +12,95 @@ license=('GPL') depends=('avr-gcc' 'avr-libc' 'libusb-compat' 'java-runtime' 'avrdude' 'java-rxtx' 'antlr2' 'eclipse-ecj' 'jna') -makedepends=(java-environment apache-ant jh) +makedepends=(java-environment apache-ant makepkg-git) install="arduino.install" source=("http://arduino.googlecode.com/files/arduino-$pkgver-src.tar.gz" - 'sig-patch.diff' + 'avrlibc-signals.patch' + 'external-avrtools.patch' 'arduino.png' 'arduino.desktop') unset _JAVA_OPTIONS . /etc/profile.d/jdk.sh -mksource() { +prepare() { cd "$srcdir/arduino-$pkgver" + find . -name '*.hex' -delete find . -name '*.jar' -delete + find . -name '*.so' -delete find . -name '*.swp' -delete - find . -name '*.so' -delete - rm -rf build/linux/dist/*/* + rm -f build/linux/dist/tools/avrdude* + rm -rf hardware/arduino/firmwares/wifishield } -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 +_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/sig-patch.diff" + 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" - #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 + rm -rf app/src/processing/app/macosx - 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 + cd app/lib + _link_jars +} + +build() { + _patch - for d in methods preproc; do - cd "$srcdir/arduino-$pkgver/core/$d" - ant + # 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 + rm "$log" + false else - rm "$log" + rm "$log" fi + + # symlink jar files to the system locations + cd "linux/work/lib" + _link_jars } 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}} + 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: - install -m755 "arduino" "$pkgdir/usr/bin/arduino" - ln -s /usr/share/arduino/reference "$pkgdir/usr/share/doc/arduino" + 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=('03263613f4be4f865989244420be04fa' - 'acadc724cbe08c09711825f4bd5c04f6' +md5sums=('dfb64e2a7de4a4a8b872732fe90e3249' + 'e44975d31aa1770e4f5ac6e6867b0864' + '9c696c2361d57027be41ae64436182aa' '9e36d33891d5e68d38ec55d1494499a5' 'eebc4d6495864bea99ad057af801afb9') diff --git a/java/arduino/arduino.install b/java/arduino/arduino.install index 35d283fab..c222e1b6d 100644 --- a/java/arduino/arduino.install +++ b/java/arduino/arduino.install @@ -1,6 +1,5 @@ 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() { 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" diff --git a/java/arduino/sig-patch.diff b/java/arduino/sig-patch.diff deleted file mode 100644 index 4be3a6cdc..000000000 --- a/java/arduino/sig-patch.diff +++ /dev/null @@ -1,256 +0,0 @@ -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 |