diff options
Diffstat (limited to 'source/d/clisp/clisp.SlackBuild')
-rwxr-xr-x | source/d/clisp/clisp.SlackBuild | 107 |
1 files changed, 57 insertions, 50 deletions
diff --git a/source/d/clisp/clisp.SlackBuild b/source/d/clisp/clisp.SlackBuild index f98057df..4205aa13 100755 --- a/source/d/clisp/clisp.SlackBuild +++ b/source/d/clisp/clisp.SlackBuild @@ -1,6 +1,6 @@ -#!/bin/sh +#!/bin/bash -# Copyright 2008, 2009, 2010, 2013, 2015 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008, 2009, 2010, 2013, 2015, 2017, 2018 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -20,26 +20,35 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +cd $(dirname $0) ; CWD=$(pwd) -VERSION=2.49 -DIRNAME=2.49 -BUILD=${BUILD:-3} +PKGNAM=clisp +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1} # Bundled libraries: -FFCALLVER=20120424cvs +FFCALLVER=2.1 # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then case "$( uname -m )" in - i?86) export ARCH=i486 ;; + i?86) export ARCH=i586 ;; arm*) export ARCH=arm ;; # Unless $ARCH is already set, use uname -m for all other archs: *) export ARCH=$( uname -m ) ;; esac fi -if [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686" +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "s390" ]; then SLKCFLAGS="-O2" @@ -54,7 +63,6 @@ fi NUMJOBS=${NUMJOBS:-" -j7 "} -CWD=$(pwd) TMP=${TMP:-/tmp} PKG=$TMP/package-clisp @@ -64,12 +72,9 @@ mkdir -p $TMP $PKG #================================================================= # Build ffcall - needed for --dynamic-ffi with clisp. cd $TMP -rm -rf ffcall* -tar xvf $CWD/ffcall-$FFCALLVER.tar.?z* || exit 1 -cd ffcall* || exit 1 - -# Not sure if this is useful or not, but I'll leave it for MoZes: -zcat $CWD/ffcall-arm.patch.gz | patch -p1 --verbose || exit 1 +rm -rf libffcall-$FFCALLVER +tar xvf $CWD/libffcall-$FFCALLVER.tar.?z || exit 1 +cd libffcall-$FFCALLVER || exit 1 chown -R root:root . find . \ @@ -83,22 +88,21 @@ CFLAGS="$SLKCFLAGS" \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --mandir=/usr/man \ + --enable-static=yes \ + --enable-shared=no \ --build=$ARCH-slackware-linux || exit 1 make $NUMJOBS || make || exit 1 make install DESTDIR=$PKG || exit 1 -# We need ffcall installed in order to build clisp: -make install - -# Don't need this: -rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la +# We need libffcall installed in order to build clisp: +make install || exit 1 # Move docs around: -mkdir -pm755 $PKG/usr/doc/clisp-$VERSION/ffcall-$FFCALLVER +mkdir -pm755 $PKG/usr/doc/clisp-$VERSION/libffcall-$FFCALLVER install -vpm644 README NEWS COPYING \ - $PKG/usr/doc/clisp-$VERSION/ffcall-$FFCALLVER -mv -f $PKG/usr/share/html/* $PKG/usr/doc/clisp-$VERSION/ffcall-$FFCALLVER + $PKG/usr/doc/clisp-$VERSION/libffcall-$FFCALLVER +mv -f $PKG/usr/share/html/* $PKG/usr/doc/clisp-$VERSION/libffcall-$FFCALLVER rmdir $PKG/usr/share/html/ rmdir $PKG/usr/share/ @@ -107,8 +111,8 @@ rmdir $PKG/usr/share/ # OK, now we compile CLISP: cd $TMP rm -rf clisp-$VERSION -tar xvf $CWD/clisp-$VERSION.tar.?z* || exit 1 -cd clisp-$DIRNAME || exit 1 +tar xvf $CWD/clisp-$VERSION.tar.?z || exit 1 +cd clisp-$VERSION || exit 1 chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ @@ -116,48 +120,51 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; +# Fix build failure with missing struct member: +zcat $CWD/clisp.c_data.compact_empty_buckets.diff.gz | patch -p1 --verbose || exit + +# I'll be unsafe if I want to: +export FORCE_UNSAFE_CONFIGURE=1 + +# --cbc instead of --config below will check the build. +# --cbcx will do even more extra checking. + CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --mandir=/usr/man \ --docdir=/usr/doc/clisp-$VERSION \ + --with-module=asdf \ + --with-module=berkeley-db \ + --with-module=bindings/glibc \ --with-module=clx/new-clx \ + --with-module=dbus \ + --with-module=gdbm \ + --with-module=gtk2 \ --with-module=pcre \ --with-module=rawsock \ - --with-module=wildcard \ --with-module=zlib \ - --cbc with-gcc-wall \ + --config builddir \ --with-dynamic-ffi || exit 1 -cd with-gcc-wall -./makemake \ - --with-dynamic-ffi \ - --prefix=/usr \ - --libdir=/usr/lib${LIBDIRSUFFIX} \ - --with-module=clx/new-clx \ - --with-module=pcre \ - --with-module=rawsock \ - --with-module=wildcard \ - --with-module=zlib \ - --srcdir=../src \ - > Makefile -make config.lisp -make init -make allc -make $NUMJOBS lisp.run -make interpreted.mem -make halfcompiled.mem -make lispinit.mem -make manual -make modular +# Build: +make $NUMJOBS -C builddir || make -C builddir || exit 1 -make install DESTDIR=$PKG || exit 1 +# Install into package: +make -C builddir install DESTDIR=$PKG || exit 1 # Strip stuff: find $PKG | xargs file | grep -e "executable" -e "shared object" \ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +# Don't ship .la files: +pushd $PKG + for lafile in usr/lib${LIBDIRSUFFIX}/*.la ; do + rm -f ${lafile} /${lafile} + done +popd + #mv $PKG/usr/share/doc/clisp/* $PKG/usr/doc/clisp-$VERSION rm -r $PKG/usr/share/doc |