diff options
Diffstat (limited to 'development/Arduino/Arduino.SlackBuild')
-rw-r--r-- | development/Arduino/Arduino.SlackBuild | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/development/Arduino/Arduino.SlackBuild b/development/Arduino/Arduino.SlackBuild new file mode 100644 index 0000000000..de5e4aaf3f --- /dev/null +++ b/development/Arduino/Arduino.SlackBuild @@ -0,0 +1,165 @@ +#!/bin/sh + +# Slackware build script for Arduino + +# Copyright 2015 Mario Preksavec, Zagreb, Croatia +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=Arduino +VERSION=${VERSION:-1.6.5} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +REFERENCE=${REFERENCE:-1.6.0} +GALILEO=${GALILEO:-1.6.2} +EDISON=${EDISON:-1.6.2} +FIRMATA=${FIRMATA:-2.4.3} +TEMBOO=${TEMBOO:-1.1.2} +LIBASTYLEJ=${LIBASTYLEJ:-2.05} + +AVRLIBC=${AVRLIBC:-1.8.0} +AVRHEADERS=${AVRHEADERS:-6.2.0.469} +AVRDUDE=${AVRDUDE:-6.0.1} +BINUTILS=${BINUTILS:-2.24} +GMP=${GMP:-5.0.2} +MPFR=${MPFR:-3.0.0} +MPC=${MPC:-0.9} +GCC=${GCC:-4.8.1} +GDB=${GDB:-7.8} +LIBUSB=${LIBUSB:-1.0.18} +LIBUSBCOMPAT=${LIBUSBCOMPAT:-0.1.5} +AUTOCONF=${AUTOCONF:-2.64} +AUTOMAKE=${AUTOMAKE:-1.11.1} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$VERSION.tar.gz || tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# Use already present toolchain requirements +tar xvf $CWD/avr-gcc-$GCC-avrdude-$AVRDUDE-arduino5.tar.gz +cp $CWD/avr-libc-$AVRLIBC.tar.bz2 \ + $CWD/avr8-headers-$AVRHEADERS.zip \ + $CWD/avrdude-$AVRDUDE.tar.gz \ + $CWD/binutils-$BINUTILS.tar.bz2 \ + $CWD/gmp-$GMP.tar.bz2 \ + $CWD/mpfr-$MPFR.tar.bz2 \ + $CWD/mpc-$MPC.tar.gz \ + $CWD/gcc-$GCC.tar.bz2 \ + $CWD/gdb-$GDB.tar.xz \ + $CWD/libusb-$LIBUSB.tar.bz2 \ + $CWD/libusb-compat-$LIBUSBCOMPAT.tar.bz2 \ + $CWD/autoconf-$AUTOCONF.tar.bz2 \ + $CWD/automake-$AUTOMAKE.tar.bz2 \ + toolchain-avr-avr-gcc-$GCC-avrdude-$AVRDUDE-arduino5/ + +# Build toolchain +( cd toolchain-avr-avr-gcc-$GCC-avrdude-$AVRDUDE-arduino5 ; ./build.all.bash ) + +# Copy toolchain to where it can be found (`mv` will preserve some space) +mkdir -p build/linux/work/hardware/tools/ +mv toolchain-avr-avr-gcc-$GCC-avrdude-$AVRDUDE-arduino5/avr/ \ + build/linux/work/hardware/tools/ +cp -r toolchain-avr-avr-gcc-$GCC-avrdude-$AVRDUDE-arduino5/avrdude-$AVRDUDE/* \ + build/linux/work/hardware/tools/avr/ +echo -e "arduino.avrdude=$AVRDUDE-arduino5\narduino.avr-gcc=$GCC-arduino5" \ + > build/linux/work/hardware/tools/avr/builtin_tools_versions.txt + +# Use already present toolchain and library bundles +sed -e '/<antcall target="avr-toolchain-bundle">/,/<\/antcall>/d' \ + -e '/<antcall target="package-library-index-json-bundle"\/>/d' \ + -i build/build.xml + +# Copy documentation, help and libraries +cp $CWD/reference-$REFERENCE.zip \ + $CWD/Galileo_help_files-$GALILEO.zip \ + $CWD/Edison_help_files-$EDISON.zip \ + build/shared/ +cp $CWD/v$FIRMATA.zip build/Firmata-$FIRMATA.zip +cp $CWD/$TEMBOO.zip build/Temboo-$TEMBOO.zip +cp $CWD/libastylej-$LIBASTYLEJ.zip build/ + +# Unpack library bundles +mkdir -p build/linux/work/dist/ +cp $CWD/package_index.json.sig build/linux/work/dist/ +gunzip -c $CWD/package_index.json.gz > build/linux/work/dist/package_index.json +gunzip -c $CWD/library_index.json.gz > build/linux/work/dist/library_index.json + +# Finally, build Arduino +( cd build ; ant ) + +# Manual install ensues +mkdir $PKG/opt +mv build/linux/work $PKG/opt/$PRGNAM +rm -rf $PKG/opt/$PRGNAM/hardware/tmp/ + +# Make it a bit more user friendly +mkdir -p $PKG/usr/{bin,share/applications} +sed -i "s/FULL_PATH/\/opt\/$PRGNAM/" $PKG/opt/$PRGNAM/arduino.desktop +mv $PKG/opt/$PRGNAM/arduino.desktop $PKG/usr/share/applications/ +ln -s /opt/$PRGNAM/arduino $PKG/usr/bin/ + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a README.md license.txt $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} |