summaryrefslogtreecommitdiffstats
path: root/abs/extra/clisp
diff options
context:
space:
mode:
Diffstat (limited to 'abs/extra/clisp')
-rw-r--r--abs/extra/clisp/PKGBUILD49
-rw-r--r--abs/extra/clisp/clisp-gcc5.patch38
-rw-r--r--abs/extra/clisp/patch-modules_readline_readline.lisp15
3 files changed, 102 insertions, 0 deletions
diff --git a/abs/extra/clisp/PKGBUILD b/abs/extra/clisp/PKGBUILD
new file mode 100644
index 0000000..9a133f2
--- /dev/null
+++ b/abs/extra/clisp/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id$
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+pkgname=clisp
+pkgver=2.49
+pkgrel=6
+pkgdesc="ANSI Common Lisp interpreter, compiler and debugger"
+arch=('x86_64')
+license=('GPL')
+url="http://clisp.cons.org/"
+depends=('readline' 'libsigsegv')
+provides=('common-lisp')
+makedepends=('ffcall')
+options=('!makeflags' '!emptydirs')
+source=("http://downloads.sourceforge.net/sourceforge/clisp/clisp-${pkgver}.tar.bz2"
+ "clisp-gcc5.patch"
+ "patch-modules_readline_readline.lisp")
+md5sums=('1962b99d5e530390ec3829236d168649'
+ 'e3008f96f6cd3059717d4a930b8c0e9c'
+ '5b29c9301ab7c1b683da70c2f805609f')
+
+prepare() {
+ cd $srcdir/${pkgname}-${pkgver}
+ patch -Np1 -i ../clisp-gcc5.patch
+ patch -Np0 -i ../patch-modules_readline_readline.lisp
+
+ # https://sourceforge.net/p/clisp/clisp/ci/cebd289dfc19de4aa504113dfcb0284657787430/
+ # http://hg.slitaz.org/wok/rev/d5a39f30f9f1#l2.28
+ sed -i 's/clisp\.cons\.org/clisp.org/' src/cfgunix.lisp
+}
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --with-readline --with-ffcall src
+ cd src
+ ./makemake --prefix=/usr --with-readline --with-ffcall --with-dynamic-ffi > Makefile
+ make
+ sed -i 's,http://www.lisp.org/HyperSpec/,http://www.lispworks.com/reference/HyperSpec/,g' config.lisp
+ make
+}
+
+check() {
+ cd $srcdir/${pkgname}-${pkgver}/src
+ make check
+}
+
+package() {
+ cd $srcdir/${pkgname}-${pkgver}/src
+ make DESTDIR=$pkgdir install
+}
diff --git a/abs/extra/clisp/clisp-gcc5.patch b/abs/extra/clisp/clisp-gcc5.patch
new file mode 100644
index 0000000..79ffa74
--- /dev/null
+++ b/abs/extra/clisp/clisp-gcc5.patch
@@ -0,0 +1,38 @@
+--- ./src/makemake.in.orig 2013-02-16 15:26:28.000000000 -0700
++++ ./src/makemake.in 2015-02-11 17:20:00.000000000 -0700
+@@ -1217,7 +1217,7 @@ if [ $XCC_GCC = true ] ; then
+ if [ $CROSS = false ] ; then
+ case "$XCC_GCC_VERSION" in
+ # gcc 2.7 introduced an annoying warning, but gcc 2.8 has a workaround:
+- 2.[8-9]* | 3.* | 4.* | egcs-2.*)
++ 2.[8-9]* | 3.* | 4.* | 5.* | 6.* | 7.* | 8.* | egcs-2.*)
+ XCFLAGS=$XCFLAGS' -Wno-sign-compare -Wno-format-nonliteral'
+ ;;
+ * ) ;;
+@@ -1226,7 +1226,7 @@ if [ $XCC_GCC = true ] ; then
+ if [ $CROSS = false -a $CC_CPLUSPLUS = true ] ; then
+ case "$XCC_GCC_VERSION" in
+ # g++ 3.4 introduced an annoying warning, but has a workaround:
+- 3.[4-9]* | 4.*)
++ 3.[4-9]* | 4.* | 5.* | 6.* | 7.* | 8.*)
+ XCFLAGS=$XCFLAGS' -Wno-invalid-offsetof'
+ ;;
+ * ) ;;
+@@ -1241,7 +1241,7 @@ if [ $XCC_GCC = true ] ; then
+ # gcc-2.7.2 has a strength-reduction bug (fixed in gcc-2.7.2.1,
+ # also fixed through the specs file of some Linux distributions).
+ XCFLAGS=$XCFLAGS' -O2 -fexpensive-optimizations -fno-strength-reduce' ;;
+- 2.3.[2-9]* | 2.[4-9]* | 3.* | 4.* | egcs-2.*)
++ 2.3.[2-9]* | 2.[4-9]* | 3.* | 4.* | 5.* | 6.* | 7.* | 8.* | egcs-2.*)
+ XCFLAGS=$XCFLAGS' -O2 -fexpensive-optimizations' ;;
+ * )
+ XCFLAGS=$XCFLAGS' -O' ;;
+@@ -1295,7 +1295,7 @@ if [ $XCC_GCC = true ] ; then
+ esac
+ fi # with_debug
+ case "$XCC_GCC_VERSION" in
+- 3* | 4*)
++ 3* | 4* | 5* | 6* | 7* | 8*)
+ # When not optimizing on linux, or with Apple's gcc 4 on MacOS X,
+ # or with GCC 4 when "gcc -Os" is used:
+ # C_CODE_ALIGNMENT is wrong. &EVAL-WHEN = 0x806D512
diff --git a/abs/extra/clisp/patch-modules_readline_readline.lisp b/abs/extra/clisp/patch-modules_readline_readline.lisp
new file mode 100644
index 0000000..19c54f9
--- /dev/null
+++ b/abs/extra/clisp/patch-modules_readline_readline.lisp
@@ -0,0 +1,15 @@
+$NetBSD: patch-modules_readline_readline.lisp,v 1.1 2016/09/20 14:10:25 wiz Exp $
+
+rl_readline_state changed from int to unsigned long in readline-7.0.
+
+--- modules/readline/readline.lisp.orig 2010-01-06 22:18:03.000000000 +0000
++++ modules/readline/readline.lisp
+@@ -424,7 +424,7 @@ name in ~/.inputrc. This is preferred wa
+ "The version of this incarnation of the readline library, e.g., 0x0402."))
+ (def-c-var gnu-readline-p (:name "rl_gnu_readline_p") (:type int)
+ (:documentation "True if this is real GNU readline."))
+-(def-c-var readline-state (:name "rl_readline_state") (:type int)
++(def-c-var readline-state (:name "rl_readline_state") (:type ulong)
+ (:documentation "Flags word encapsulating the current readline state."))
+ (def-c-var editing-mode (:name "rl_editing_mode") (:type int)
+ (:documentation "Says which editing mode readline is currently using.