#!/bin/sh # Slackware build script for eclim # Copyright 2016-2018 Andrew Clemons, Wellington New Zealand # 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=eclim VERSION=${VERSION:-2.7.1} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac fi CWD=$(pwd) TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -mtune=i686" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" else SLKCFLAGS="-O2" fi set -e rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf "$PRGNAM"_"$VERSION" 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 {} \; # http://eclim.org/install.html#install-source ( # build nailgun cd org.eclim/nailgun chmod +x configure sed -i 's/ -s -O3//' Makefile.in CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure make find . -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true ) chmod +x bin/sphinx # allow building with root - eek sed -i "s/'root'/'dummy'/g" ant/build.gant ECLIPSE_HOME=${ECLIPSE_HOME:-/opt/eclipse-java} ECLIPSE_HOME=${ECLIPSE_HOME%/} # thanks to the archlinux maintainer (thanks to mikezackles) sed -i \ -e "s|File(getVariable('eclipse')|File('$ECLIPSE_HOME/'|g" \ -e 's|${user.home}/\.|${vim.files}/|g' \ -e '69,88d' \ ant/build.gant ant build -Declipse.home=$ECLIPSE_HOME -Dvim.files=/usr/share/vim/vimfiles mkdir -p $PKG/usr/share/vim/vimfiles mkdir -p $PKG$ECLIPSE_HOME ant docs vimdocs -Declipse.home=$ECLIPSE_HOME -Dvim.files=$PKG/usr/share/vim/vimfiles ant deploy -Declipse.home=$PKG$ECLIPSE_HOME -Dvim.files=$PKG/usr/share/vim/vimfiles # tidy up sed -i "s|$PKG||" \ $PKG$ECLIPSE_HOME/plugins/org.eclim_$VERSION/bin/eclimd \ $PKG$ECLIPSE_HOME/plugins/org.eclim_$VERSION/plugin.properties \ $PKG/usr/share/vim/vimfiles/eclim/plugin/eclim.vim # generate tags for help files echo "ignored" | vim \ -c "set rtp^=$PKG/usr/share/vim/vimfiles" \ -c "source $PKG/usr/share/vim/vimfiles/plugin/eclim.vim" \ -c 'EclimHelp' \ -c 'q!' - find $PKG$ECLIPSE_HOME/plugins/org.eclim_$VERSION/nailgun \! -name ng -mindepth 1 -print0 | xargs -0 rm -rf rm -rf build/doc/site/.doctrees # neovim support mkdir -p $PKG/usr/share/nvim/runtime/plugin ( cd $PKG/usr/share/nvim/runtime ln -s ../../vim/vimfiles/eclim eclim ln -s ../../../vim/vimfiles/plugin/eclim.vim plugin/eclim.vim ) mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a \ build/doc/site \ $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 cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}