mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-08 21:00:05 +02:00
222 lines
7.2 KiB
Bash
222 lines
7.2 KiB
Bash
SUMMARY="IDE for the Arduino embedded hardware family"
|
|
DESCRIPTION="Arduino is an open-source tool used for building electronics projects.
|
|
Arduino consists of a physical programmable circuit board (often referred to as a micro-controller) \
|
|
and a development environment, or IDE (Integrated Development Environment) that runs on your computer, \
|
|
used to write and upload computer code to the board."
|
|
HOMEPAGE="http://arduino.cc"
|
|
COPYRIGHT="2016 Arduino"
|
|
LICENSE="GNU GPL v2"
|
|
REVISION="2"
|
|
SOURCE_URI="https://downloads.arduino.cc/arduino-$portVersion-linux32.tar.xz"
|
|
CHECKSUM_SHA256="8e64d32c56c116a8bad4741bfcbe715b2040447fbcc1634c99f486790a0021a4"
|
|
SOURCE_DIR="arduino-$portVersion"
|
|
jsscVersion="2.8.0"
|
|
SOURCE_URI_2="https://github.com/scream3r/java-simple-serial-connector/archive/refs/tags/v$jsscVersion.tar.gz"
|
|
CHECKSUM_SHA256_2="c3287bfc31ea81929739271b087b833fb7050686af6a90ec953c5b2f41b4d42d"
|
|
SOURCE_DIR_2="java-simple-serial-connector-$jsscVersion"
|
|
SOURCE_URI_3="https://github.com/arduino/Arduino/archive/refs/tags/$portVersion.tar.gz"
|
|
CHECKSUM_SHA256_3="4e389aa0de6fd0acfbf0610713b9f297abe67750a15aefe9a695ac4d507cd897"
|
|
SOURCE_DIR_3="Arduino-$portVersion/app/src/processing/app"
|
|
SOURCE_URI_4="https://github.com/arduino/Arduino/archive/refs/tags/$portVersion.tar.gz"
|
|
CHECKSUM_SHA256_4="4e389aa0de6fd0acfbf0610713b9f297abe67750a15aefe9a695ac4d507cd897"
|
|
SOURCE_DIR_4="Arduino-$portVersion/arduino-core/src/processing"
|
|
|
|
PATCHES="arduino-$portVersion.patchset"
|
|
PATCHES_2="jssc_2.8.0.patchset"
|
|
PATCHES_3="JFileChooser-$portVersion.patchset"
|
|
PATCHES_4="SettingsFolder-$portVersion.patchset"
|
|
ADDITIONAL_FILES="
|
|
arduino.rdef.in
|
|
arduino-bin.rdef.in
|
|
"
|
|
|
|
ARCHITECTURES="all !x86_gcc2"
|
|
SECONDARY_ARCHITECTURES="x86"
|
|
DISABLE_SOURCE_PACKAGE="yes"
|
|
|
|
PROVIDES="
|
|
arduino$secondaryArchSuffix = $portVersion
|
|
app:Arduino$secondaryArchSuffix = $portVersion
|
|
"
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
avr_binutils$secondaryArchSuffix
|
|
avr_gcc$secondaryArchSuffix
|
|
avr_libc
|
|
cmd:avrdude
|
|
java:runtime == 8
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
openjdk8$secondaryArchSuffix
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:jar >= 1.8
|
|
cmd:java >= 1.8
|
|
cmd:javac >= 1.8
|
|
cmd:make
|
|
"
|
|
|
|
BUILD()
|
|
{
|
|
cd haiku
|
|
make
|
|
|
|
mkdir -p $sourceDir2/build/jssc
|
|
|
|
javac -encoding ISO-8859-1 $sourceDir2/src/java/jssc/*.java
|
|
cp $sourceDir2/src/java/jssc/*.class $sourceDir2/build/jssc
|
|
|
|
mkdir -p $sourceDir2/build/libs/haiku
|
|
cd $sourceDir2/build/libs/haiku
|
|
|
|
if [ "$effectiveTargetArchitecture" = "x86_gcc2" ]; then
|
|
STDLIB="stdc++.r4"
|
|
else
|
|
STDLIB="stdc++"
|
|
fi
|
|
|
|
gcc -shared \
|
|
-I/system/$relativeLibDir/openjdk8/include \
|
|
-I/system/$relativeLibDir/openjdk8/include/haiku \
|
|
$sourceDir2/src/cpp/_nix_based/jssc.cpp \
|
|
-l$STDLIB \
|
|
-o $sourceDir2/build/libs/haiku/libjSSC-2.8_x86_64.so
|
|
|
|
cp -r $sourceDir2/src/java/libs/* $sourceDir2/build/libs
|
|
cd $sourceDir2/build
|
|
jar cf jssc-2.8.0.jar jssc libs
|
|
|
|
mkdir -p $sourceDir2/build/processing/app
|
|
cp -f $sourceDir2/src/java/jssc/SerialPortList.java $sourceDir2/build/processing/app
|
|
sed -i 's|package jssc;|package processing.app;|1' \
|
|
$sourceDir2/build/processing/app/SerialPortList.java
|
|
sed -i '/import java.util.regex.Pattern;/a import jssc.SerialNativeInterface;' \
|
|
$sourceDir2/build/processing/app/SerialPortList.java
|
|
|
|
javac -target 7 -source 1.7 -encoding ISO-8859-1 -cp ./jssc-2.8.0.jar:$sourceDir/lib/arduino-core.jar \
|
|
$sourceDir2/build/processing/app/SerialPortList.java
|
|
rm $sourceDir2/build/processing/app/SerialPortList.java
|
|
|
|
cd $sourceDir
|
|
javac -target 7 -source 1.7 -encoding ISO-8859-1 -cp java/lib/rt.jar:java/lib/tools.jar:./lib/pde.jar:./lib/arduino-core.jar \
|
|
$sourceDir3/Base.java $sourceDir3/Sketch.java
|
|
|
|
|
|
mkdir -p $sourceDir3/processing/app
|
|
cp -f $sourceDir3/*.class $sourceDir3/processing/app
|
|
|
|
javac -target 7 -source 1.7 -encoding ISO-8859-1 \
|
|
-cp java/lib/rt.jar:java/lib/tools.jar:./lib/pde.jar:./lib/arduino-core.jar:./lib/jna.jar \
|
|
$sourceDir4/app/Platform.java
|
|
|
|
mkdir -p $sourceDir4/processing/app
|
|
cp -f $sourceDir4/app/*.class $sourceDir4/processing/app
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
arduinoDir=$appsDir/Arduino
|
|
mkdir -p $arduinoDir/hardware/arduino
|
|
|
|
cp -r {examples,libraries,reference,lib,tools} $arduinoDir
|
|
cp -r hardware/arduino/avr $arduinoDir/hardware/arduino
|
|
|
|
#Patch for AVR tools
|
|
sed -i "s|^compiler.path=.*|compiler.path=/bin/|g" \
|
|
$arduinoDir/hardware/arduino/avr/platform.txt
|
|
sed -i "s|^tools.avrdude.cmd.path=.*|tools.avrdude.cmd.path=/bin/avrdude|g" \
|
|
$arduinoDir/hardware/arduino/avr/platform.txt
|
|
sed -i "s|^tools.avrdude.config.path=.*|tools.avrdude.config.path=/system/settings/avrdude.conf|g" \
|
|
$arduinoDir/hardware/arduino/avr/platform.txt
|
|
|
|
#Disable check for update
|
|
sed -i 's|^update.check.*|update.check = false|g' \
|
|
$arduinoDir/lib/preferences.txt
|
|
#Set default serial port
|
|
sed -i 's|^serial.port=.*|serial.port=/dev/ports/usb0|g' \
|
|
$arduinoDir/lib/preferences.txt
|
|
#Add command for opening
|
|
echo "browser = /bin/open" >> $arduinoDir/lib/preferences.txt
|
|
echo "launcher = /bin/open" >> $arduinoDir/lib/preferences.txt
|
|
|
|
#Add fake libastylej.so library
|
|
rm $arduinoDir/lib/libastylej.so
|
|
ln -s $libDir/libroot.so $arduinoDir/lib/libastylej.so
|
|
|
|
cp -f $sourceDir2/build/jssc-2.8.0.jar $arduinoDir/lib
|
|
|
|
#Add patched SerialList class into arduino-core.jar
|
|
cd $sourceDir2/build
|
|
jar -uf $arduinoDir/lib/arduino-core.jar \
|
|
processing/app/SerialPortList.class \
|
|
processing/app/SerialPortList$1.class
|
|
|
|
#Add patch for JFileChooser using
|
|
cd $sourceDir3
|
|
jar -uf $arduinoDir/lib/pde.jar \
|
|
processing/app/*.class
|
|
|
|
#Add patch for settings directory
|
|
cd $sourceDir4
|
|
jar -uf $arduinoDir/lib/arduino-core.jar \
|
|
processing/app/*.class
|
|
|
|
cd $sourceDir
|
|
|
|
#Generate launcher script
|
|
cat > $arduinoDir/arduino.sh << EOF
|
|
#!/bin/sh
|
|
APPDIR="\$(dirname -- "\$(readlink -f -- "\${0}")" )"
|
|
cd "\$APPDIR"
|
|
for LIB in java/lib/rt.jar java/lib/tools.jar lib/*.jar ;
|
|
do
|
|
CLASSPATH="\${CLASSPATH}:\${LIB}"
|
|
done
|
|
export CLASSPATH
|
|
LD_LIBRARY_PATH=`pwd`/lib\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH}
|
|
export LD_LIBRARY_PATH
|
|
export PATH="/system/$relativeLibDir/openjdk8/jre/bin:\${PATH}"
|
|
export JAVA_HOME="/system/$relativeLibDir/openjdk8"
|
|
Arduino processing.app.Base "\$@"
|
|
EOF
|
|
|
|
chmod +x $arduinoDir/arduino.sh
|
|
|
|
#Copy binary launcher
|
|
cp "haiku/Arduino IDE" $arduinoDir
|
|
mkdir -p $libDir/openjdk8/jre/bin
|
|
cp /system/$relativeLibDir/openjdk8/jre/bin/java $libDir/openjdk8/jre/bin/Arduino
|
|
|
|
cp revisions.txt $arduinoDir
|
|
|
|
local APP_SIGNATURE="application/x-vnd.arduino"
|
|
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
|
|
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
|
|
local MINOR="`echo "$portVersion" | cut -d. -f3`"
|
|
local LONG_INFO="$SUMMARY"
|
|
sed \
|
|
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
|
|
-e "s|@MAJOR@|$MAJOR|" \
|
|
-e "s|@MIDDLE@|$MIDDLE|" \
|
|
-e "s|@MINOR@|$MINOR|" \
|
|
-e "s|@LONG_INFO@|$LONG_INFO|" \
|
|
$portDir/additional-files/arduino.rdef.in > arduino.rdef
|
|
addResourcesToBinaries arduino.rdef "$arduinoDir/Arduino IDE"
|
|
|
|
local APP_SIGNATURE="application/x-vnd.arduino-bin"
|
|
sed \
|
|
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
|
|
-e "s|@MAJOR@|$MAJOR|" \
|
|
-e "s|@MIDDLE@|$MIDDLE|" \
|
|
-e "s|@MINOR@|$MINOR|" \
|
|
-e "s|@LONG_INFO@|$LONG_INFO|" \
|
|
$portDir/additional-files/arduino-bin.rdef.in > arduino-bin.rdef
|
|
addResourcesToBinaries arduino-bin.rdef $libDir/openjdk8/jre/bin/Arduino
|
|
mimeset -f $libDir/openjdk8/jre/bin/Arduino
|
|
|
|
addAppDeskbarSymlink "$arduinoDir/Arduino IDE"
|
|
}
|