summaryrefslogtreecommitdiff
path: root/lang/sbcl/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'lang/sbcl/Makefile')
-rw-r--r--lang/sbcl/Makefile90
1 files changed, 46 insertions, 44 deletions
diff --git a/lang/sbcl/Makefile b/lang/sbcl/Makefile
index 46c61e7a69f..599a6d286e9 100644
--- a/lang/sbcl/Makefile
+++ b/lang/sbcl/Makefile
@@ -1,73 +1,75 @@
-# $NetBSD: Makefile,v 1.15 2007/11/07 17:34:18 jonb Exp $
+# $NetBSD: Makefile,v 1.16 2008/05/28 14:06:31 jonb Exp $
+
+.include "../../mk/bsd.prefs.mk"
DISTNAME= ${PKGNAME_NOREV}-source
-PKGNAME= sbcl-1.0.11
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
+ sbcl-${OPSYS}-${MACHINE_ARCH}-${OS_VERSION}.tgz
+PKGNAME= sbcl-1.0.16
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=sbcl/}
EXTRACT_SUFX= .tar.bz2
+SITES.sbcl-${OPSYS}-${MACHINE_ARCH}-${OS_VERSION}.tgz= \
+ ftp://ftp.NetBSD.org/pub/NetBSD/misc/jonb/sbcl/
MAINTAINER= jonb@NetBSD.org
HOMEPAGE= http://www.sbcl.org/
COMMENT= SBCL, a Common Lisp implementation
ONLY_FOR_PLATFORM= NetBSD-[2-9]*-i386
+
+# SBCL creates a new release with minor updates and fixes every
+# month. The maintainer of this package does not have the time
+# to build, test, update, etc. this package that often. If you
+# would like a newer (or older) version, this works very often:
+# 1) change the PKGNAME variable above as desired
+# 2) make fetch && make makesum && make package
+
# It should be possible to have SBCL working on amd64, powerpc,
# sparc, alpha, mips, and HPPA hardware also, but they probably
# need a bit of porting work done in SBCL itself.
# In addition, SBCL should also work on Linux, Darwin, Solaris,
# FreeBSD, OpenBSD, and possibly Win32, OSF/1, HP-UX, and Irix.
+# SBCL needs an existing Common Lisp system to build it...
+# In theory CLisp, CMUCL, OpenMCL, and SBCL itself should work.
+# In practice, CLisp has been a PITA, while CMUCL and OpenMCL
+# haven't been ported to NetBSD. That leaves SBCL itself to
+# do the build, so pull in a working binary package of SBCL
+# along with the sources when building.
+
USE_TOOLS+= gmake gtar:run
PKG_INSTALLATION_TYPES= overwrite pkgviews
WRKSRC= ${WRKDIR}/${PKGNAME_NOREV}/
-#
-# Bootstrap section.
-#
-# SBCL needs an existing Common Lisp system to build it...
-# Currently allowed systems are CLisp, CMUCL, OpenMCL, and SBCL itself.
-#
-# Note that CLisp 2.39nb1 worked two or three times when testing
-# this package and it failed to build SBCL twice. It is also at
-# least twice as slow as using SBCL when building on an i386 platform.
-#
-# I have never been able to get CLisp to build on a SPARC system, so
-# I had to cross build when trying to port SBCL to NetBSD/sparc.
-# I have reports that CLisp will build on PowerPC platforms, but is
-# unable to build SBCL.
-#
-# If SBCL is installed in an unusual place when trying to build this
-# package, you may need to set the full path in SBCL_BOOT_SYSTEM and
-# build the package with "SBCL_HOME=/path/to/SBCL/core/image/ make"
-
-#SBCL_BOOT_SYSTEM= clisp # CLisp
-#SBCL_BOOT_SYSTEM= "lisp -batch" # CMUCL
-#SBCL_BOOT_SYSTEM= "openmcl --batch" # OpenMCL
-#SBCL_BOOT_SYSTEM= sbcl # SBCL
-
-.if defined(SBCL_BOOT_SYSTEM) && ${SBCL_BOOT_SYSTEM} == clisp
-BUILD_DEPENDS+= clisp-[0-9]*:../../lang/clisp
-.endif
+SUBST_CLASSES+= fix-paths
+SUBST_STAGE.fix-paths= pre-configure
+SUBST_MESSAGE.fix-paths=fixing pathnames
+SUBST_FILES.fix-paths= install.sh src/runtime/runtime.c doc/sbcl.1
+SUBST_SED.fix-paths= -e 's,@PREFIX@,${PREFIX},g'
-.if !defined(SBCL_BOOT_SYSTEM)
-PKG_FAIL_REASON+= "Sorry, need a Common Lisp system. See Makefile for details."
-.endif
-
-post-patch:
- ${MV} ${WRKSRC}install.sh ${WRKSRC}install.sh.dist
- ${SED} -e "s,@PREFIX@,${PREFIX}," ${WRKSRC}install.sh.dist > ${WRKSRC}install.sh
- ${MV} ${WRKSRC}src/runtime/runtime.c ${WRKSRC}src/runtime/runtime.c.dist
- ${SED} -e "s,@PREFIX@,${PREFIX}," ${WRKSRC}src/runtime/runtime.c.dist > ${WRKSRC}src/runtime/runtime.c
- ${MV} ${WRKSRC}doc/sbcl.1 ${WRKSRC}doc/sbcl.1.dist
- ${SED} -e "s,@PREFIX@,${PREFIX}," ${WRKSRC}doc/sbcl.1.dist > ${WRKSRC}doc/sbcl.1
- ${MV} ${WRKSRC}contrib/asdf-install/installer.lisp ${WRKSRC}contrib/asdf-install/installer.lisp.dist
- ${SED} -e "s,@GTAR@,${GTAR}," ${WRKSRC}contrib/asdf-install/installer.lisp.dist > ${WRKSRC}contrib/asdf-install/installer.lisp
+SUBST_CLASSES+= fix-gtar
+SUBST_STAGE.fix-gtar= pre-configure
+SUBST_MESSAGE.fix-gtar= fixing gtar references
+SUBST_FILES.fix-gtar= contrib/asdf-install/installer.lisp
+SUBST_SED/fix-gtar= -e 's,@GTAR@.${GTAR},g'
do-build:
- cd ${WRKSRC} && ${SH} make.sh "${SBCL_BOOT_SYSTEM}"
+ export SBCL_HOME=${WRKDIR}/lib/sbcl/ \
+ && cd ${WRKSRC} \
+ && ${SH} make.sh ${WRKDIR}/bin/sbcl
+
+# Rather not do this, but the file names seem to be hash values of
+# timestamps or something and the pkgsrc system does *not* like
+# randomly named and always changing file names
+post-build:
+ ${RM} -rf ${WRKSRC}/contrib/sb-cover/test-output
do-install:
- cd ${WRKSRC} && INSTALL_ROOT=${PREFIX} MAN_DIR=${PREFIX}/${PKGMANDIR} ${SH} install.sh
+ cd ${WRKSRC} \
+ && INSTALL_ROOT=${PREFIX} \
+ MAN_DIR=${PREFIX}/${PKGMANDIR} \
+ ${SH} install.sh
.include "../../mk/bsd.pkg.mk"