I've had several tentative diffs to update clisp, but every time I delete them because of frustrations with the build system.
This has to stop! Here's a tentative diff, probably not perfect. I did not enable the use of shared modules, cause I don't know how to use them. There are a few missing entries in the PLIST, I did not investigate further yet. Passes make test, builds a working sbcl on amd64. Dunno about other archs. Index: Makefile =================================================================== RCS file: /cvs/ports/lang/clisp/Makefile,v retrieving revision 1.43 diff -u -p -r1.43 Makefile --- Makefile 21 Mar 2013 08:46:32 -0000 1.43 +++ Makefile 28 Sep 2015 23:07:04 -0000 @@ -4,8 +4,7 @@ ONLY_FOR_ARCHS = amd64 i386 powerpc spar COMMENT = ANSI Common Lisp implementation -DISTNAME= clisp-2.48 -REVISION = 3 +DISTNAME= clisp-2.49 CATEGORIES= lang HOMEPAGE= http://clisp.cons.org/ MAINTAINER = Joshua Elsasser <jo...@openbsd.org> @@ -35,7 +34,9 @@ CONFIGURE_ARGS= --fsstnd=openbsd \ --docdir=${PREFIX}/share/doc/clisp \ --elispdir=${PREFIX}/share/emacs/site-lisp \ --vimdir=${PREFIX}/share/doc/clisp \ - --srcdir=${WRKSRC} ${WRKBUILD} + --srcdir=${WRKSRC} ${WRKBUILD} \ + --without-dynamic-modules + CONFIGURE_ENV = ac_cv_prog_DVIPDF='' .if ${MACHINE_ARCH} == "sparc64" @@ -49,5 +50,8 @@ LDFLAGS += -nopie .else CONFIGURE_ARGS += --without-gmalloc .endif + +pre-build: + ln -sf ${LOCALBASE}/bin/gmake ${WRKDIR}/bin/make .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/lang/clisp/distinfo,v retrieving revision 1.10 diff -u -p -r1.10 distinfo --- distinfo 18 Jan 2015 03:14:18 -0000 1.10 +++ distinfo 28 Sep 2015 18:58:02 -0000 @@ -1,2 +1,2 @@ -SHA256 (clisp-2.48.tar.bz2) = Bbg/VghZojZ5zPwHOhKKU3f+lInXNEMaPcMu+I8MPcI= -SIZE (clisp-2.48.tar.bz2) = 7885098 +SHA256 (clisp-2.49.tar.bz2) = gTL/NTr6pw5rGTZ6Ja49WkNicnnCVkfCIGQf7QD46JA= +SIZE (clisp-2.49.tar.bz2) = 8091011 Index: patches/patch-configure =================================================================== RCS file: /cvs/ports/lang/clisp/patches/patch-configure,v retrieving revision 1.3 diff -u -p -r1.3 patch-configure --- patches/patch-configure 7 Jan 2010 10:55:28 -0000 1.3 +++ patches/patch-configure 28 Sep 2015 23:14:55 -0000 @@ -1,7 +1,7 @@ $OpenBSD: patch-configure,v 1.3 2010/01/07 10:55:28 edd Exp $ ---- configure.orig Thu Jan 15 08:37:34 2009 -+++ configure Wed Dec 30 01:35:49 2009 -@@ -389,7 +389,7 @@ do +--- configure.orig Mon Dec 14 15:37:22 2009 ++++ configure Tue Sep 29 01:08:02 2015 +@@ -383,7 +383,7 @@ do passnext=both ;; --elispdir=* | --elispdi=* | --elispd=* | --elisp=* | --elis=* | --eli=* | --el=*) @@ -10,7 +10,7 @@ $OpenBSD: patch-configure,v 1.3 2010/01/ makemake_args="$makemake_args --elispdir="`getarg "$arg"` ;; --elispdir | --elispdi | --elispd | --elisp | --elis | --eli | --el) -@@ -399,7 +399,7 @@ do +@@ -393,7 +393,7 @@ do passnext=both ;; --vimdir=* | --vimdi=* | --vimd=* | --vim=* | --vi=*) @@ -19,7 +19,7 @@ $OpenBSD: patch-configure,v 1.3 2010/01/ makemake_args="$makemake_args --vimdir="`getarg "$arg"` ;; --vimdir | --vimdi | --vimd | --vim | --vi) -@@ -744,8 +744,7 @@ stacksizelimit=`ulimit -s 2>/dev/null || :` # cygwin / +@@ -723,8 +723,7 @@ stacksizelimit=`ulimit -s 2>/dev/null || :` # cygwin / # need 3 separate test calls because of "integer expression expected" errors # when $stacksizelimit is "" or "unlimited" (no short-circuiting!) set +e; Index: patches/patch-src_clisp-link_in =================================================================== RCS file: /cvs/ports/lang/clisp/patches/patch-src_clisp-link_in,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_clisp-link_in --- patches/patch-src_clisp-link_in 7 Jan 2010 10:55:28 -0000 1.1 +++ patches/patch-src_clisp-link_in 28 Sep 2015 19:00:58 -0000 @@ -1,11 +1,11 @@ $OpenBSD: patch-src_clisp-link_in,v 1.1 2010/01/07 10:55:28 edd Exp $ ---- src/clisp-link.in.orig Wed Jun 17 19:30:31 2009 -+++ src/clisp-link.in Sat Jan 2 19:08:19 2010 -@@ -336,6 +336,7 @@ case "$1" in - link_some "$sourcedir" "$destinationdir" ${LISPRUN} lispinit.mem modules.h modules.o makevars ${FILES}; +--- src/clisp-link.in.orig Tue May 25 21:54:54 2010 ++++ src/clisp-link.in Mon Sep 28 20:59:27 2015 +@@ -382,6 +382,7 @@ case "$1" in + lncp_some "$sourcedir" "$destinationdir" ${LISPRUN} lispinit.mem modules.h modules.o makevars ${FILES}; else cp "$sourcedir"/modules.h "$destinationdir"/modules.h -+ chmod +w "$destinationdir"/modules.h - FILES=`link_some "$sourcedir" "$destinationdir" ${FILES}` ++ chmod +w ""$destinationdir"/modules.h" + FILES=`lncp_some "$sourcedir" "$destinationdir" ${FILES}` # Prepare the module directories and read their variables PRELOAD='' Index: patches/patch-src_configure =================================================================== RCS file: patches/patch-src_configure diff -N patches/patch-src_configure --- patches/patch-src_configure 7 Jan 2010 10:55:28 -0000 1.5 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,47 +0,0 @@ -$OpenBSD: patch-src_configure,v 1.5 2010/01/07 10:55:28 edd Exp $ ---- src/configure.orig Tue Jul 28 23:10:12 2009 -+++ src/configure Mon Dec 28 21:08:14 2009 -@@ -22606,43 +22606,6 @@ $as_echo "no" >&6; } - fi - - --# Extract the first word of "dvipdf", so it can be a program name with args. --set dummy dvipdf; ac_word=$2 --{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 --$as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_prog_DVIPDF+set}" = set; then -- $as_echo_n "(cached) " >&6 --else -- if test -n "$DVIPDF"; then -- ac_cv_prog_DVIPDF="$DVIPDF" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_DVIPDF="dvipdf" -- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done --IFS=$as_save_IFS -- --fi --fi --DVIPDF=$ac_cv_prog_DVIPDF --if test -n "$DVIPDF"; then -- { $as_echo "$as_me:$LINENO: result: $DVIPDF" >&5 --$as_echo "$DVIPDF" >&6; } --else -- { $as_echo "$as_me:$LINENO: result: no" >&5 --$as_echo "no" >&6; } --fi -- -- - for ac_prog in gzip zip compress - do - # Extract the first word of "$ac_prog", so it can be a program name with args. Index: patches/patch-src_makemake_in =================================================================== RCS file: /cvs/ports/lang/clisp/patches/patch-src_makemake_in,v retrieving revision 1.11 diff -u -p -r1.11 patch-src_makemake_in --- patches/patch-src_makemake_in 23 Sep 2010 13:42:22 -0000 1.11 +++ patches/patch-src_makemake_in 28 Sep 2015 22:29:44 -0000 @@ -3,18 +3,32 @@ $OpenBSD: patch-src_makemake_in,v 1.11 2 Override broken compiler test, attempting to build 32-bit clisp on a 64-bit patform will not work out very well. ---- src/makemake.in.orig Tue Jul 28 06:58:03 2009 -+++ src/makemake.in Mon Sep 20 16:32:15 2010 -@@ -1108,6 +1108,8 @@ esac - # cpu=hppa ;; +Use the correct recipe to build shared modules on OpenBSD. + +--- src/makemake.in.orig Wed Jul 7 17:15:35 2010 ++++ src/makemake.in Tue Sep 29 00:28:57 2015 +@@ -1150,6 +1150,7 @@ esac # esac + test -z "$cpu" && cpu=${host_cpu} +test "$cpu" = "${host_cpu%*64}" && cpu=${host_cpu} -+ - if [ "${verbose}" = true -o "${verbose}" = yes ]; then + + test "${verbose}" = true -o "${verbose}" = yes && \ cat <<EOF >&2 - # host system: -@@ -1916,7 +1918,7 @@ echol "# This can also be used for pre-test and post-r +@@ -1421,10 +1422,10 @@ if [ "${with_dynamic_modules}" != no ]; then + freebsd2.2*) + XCC_CREATESHARED='ld -Bshareable -o $lib $libs /usr/lib/c++rt0.o' + ;; +- freebsd2* | netbsd* | openbsd*) ++ freebsd2* | netbsd* ) + XCC_CREATESHARED='ld -Bshareable -o $lib $libs' + ;; +- freebsd3* | gnu* | linux* | cygwin* | mingw* | k*bsd* | dragonfly*) ++ freebsd3* | gnu* | linux* | cygwin* | mingw* | k*bsd* | dragonfly* | openbsd* ) + XCC_CREATESHARED='${CC} ${CFLAGS} ${CLFLAGS} -shared -o $lib $libs' + ;; + hpux9* | hpux10*) +@@ -1904,7 +1905,7 @@ echol "# This can also be used for pre-test and post-r echol "# make distrib VERSION_SUFFIX=pre" echol "VERSION_SUFFIX=" echol "# The distribution's top directory" @@ -23,7 +37,7 @@ Override broken compiler test, attemptin echol echol '# Directories used by "make install":' echol "prefix = ${PREFIX}" -@@ -3002,7 +3004,7 @@ fi +@@ -2931,7 +2932,7 @@ fi CLISP_="${HERE_}lisp${LEXE} -M ${HERE_}lispinit.mem ${localeflags}${someflags}" if [ $CROSS = false ] ; then Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/lang/clisp/pkg/PLIST,v retrieving revision 1.15 diff -u -p -r1.15 PLIST --- pkg/PLIST 9 Nov 2010 21:28:36 -0000 1.15 +++ pkg/PLIST 28 Sep 2015 20:44:12 -0000 @@ -1,48 +1,55 @@ @comment $OpenBSD: PLIST,v 1.15 2010/11/09 21:28:36 naddy Exp $ @bin bin/clisp +bin/clisp-link lib/clisp/ lib/clisp/base/ +lib/clisp/base/bogomips.o lib/clisp/base/calls.o lib/clisp/base/gettext.o +lib/clisp/base/libgnu_cl.a +lib/clisp/base/libgnu_rx.a +lib/clisp/base/libgnu_sc.a lib/clisp/base/libnoreadline.a lib/clisp/base/lisp.a @bin lib/clisp/base/lisp.run lib/clisp/base/lispinit.mem -lib/clisp/base/localcharset.o lib/clisp/base/makevars lib/clisp/base/modules.h lib/clisp/base/modules.o lib/clisp/base/readline.o -lib/clisp/base/regex.o lib/clisp/base/regexi.o -lib/clisp/base/regexp.dvi -lib/clisp/base/uniname.o -lib/clisp/base/width.o -lib/clisp/clisp-link +lib/clisp/build-aux/ +lib/clisp/build-aux/arg-nonnull.h +lib/clisp/build-aux/c++defs.h +lib/clisp/build-aux/config.guess +lib/clisp/build-aux/config.rpath +lib/clisp/build-aux/config.sub +lib/clisp/build-aux/depcomp +lib/clisp/build-aux/warn-on-use.h lib/clisp/data/ lib/clisp/data/Symbol-Table.text lib/clisp/data/UnicodeDataFull.txt lib/clisp/full/ +lib/clisp/full/bogomips.o lib/clisp/full/calls.o lib/clisp/full/gettext.o +lib/clisp/full/libgnu_cl.a +lib/clisp/full/libgnu_rx.a +lib/clisp/full/libgnu_sc.a lib/clisp/full/libnoreadline.a lib/clisp/full/lisp.a @bin lib/clisp/full/lisp.run lib/clisp/full/lispinit.mem -lib/clisp/full/localcharset.o lib/clisp/full/makevars lib/clisp/full/modules.h lib/clisp/full/modules.o lib/clisp/full/readline.o -lib/clisp/full/regex.o lib/clisp/full/regexi.o -lib/clisp/full/regexp.dvi -lib/clisp/full/uniname.o -lib/clisp/full/width.o lib/clisp/linkkit/ lib/clisp/linkkit/clisp.h lib/clisp/linkkit/modprep.lisp lib/clisp/linkkit/modules.c +@man man/man1/clisp-link.1 @man man/man1/clisp.1 share/aclocal/clisp.m4 share/doc/clisp/ @@ -57,8 +64,10 @@ share/doc/clisp/README share/doc/clisp/README.de share/doc/clisp/README.es share/doc/clisp/SUMMARY +share/doc/clisp/clisp-link.1 +share/doc/clisp/clisp-link.html +share/doc/clisp/clisp-link.ps share/doc/clisp/clisp.1 -share/doc/clisp/clisp.dvi share/doc/clisp/clisp.html share/doc/clisp/clisp.png share/doc/clisp/clisp.ps -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE