aboutsummaryrefslogtreecommitdiffstats
path: root/lang/sbcl
diff options
context:
space:
mode:
authormarino <marino@FreeBSD.org>2015-03-22 20:59:46 +0800
committermarino <marino@FreeBSD.org>2015-03-22 20:59:46 +0800
commita51cc3ffa6592808dd405d8cad5cd9e3878158c7 (patch)
tree069005717b864a9c0ba56ac7abf78dd84aadf491 /lang/sbcl
parent61fd8ce117004f7cd67c51fd98bf469fae79fadb (diff)
downloadfreebsd-ports-gnome-a51cc3ffa6592808dd405d8cad5cd9e3878158c7.tar.gz
freebsd-ports-gnome-a51cc3ffa6592808dd405d8cad5cd9e3878158c7.tar.zst
freebsd-ports-gnome-a51cc3ffa6592808dd405d8cad5cd9e3878158c7.zip
lang/sbcl: Fix MASTER_SITES, support DragonFly and more
Now that SBCL is current, there was some cleanup needed. This included: - MASTER_SITES for bootstrap compilers did not resolve - Replaced with LOCAL/marino - FreeBSD 7 not supported anymore - removed references from distinfo and bootstrap list - contrib modules not supported anymore, removed references - removed -pthread change - Added support for x86-64-dragonfly - simplified docs handling (remove condition DISTFILE for docs) - unmasked build target commands - moved cleanup of patching to post-patch target - general aesthetic cleanup No revbump needed.
Diffstat (limited to 'lang/sbcl')
-rw-r--r--lang/sbcl/Makefile158
-rw-r--r--lang/sbcl/distinfo6
2 files changed, 66 insertions, 98 deletions
diff --git a/lang/sbcl/Makefile b/lang/sbcl/Makefile
index 2a8d406e8593..4e790fdc2163 100644
--- a/lang/sbcl/Makefile
+++ b/lang/sbcl/Makefile
@@ -4,9 +4,9 @@ PORTNAME= sbcl
PORTVERSION= 1.2.9
PORTEPOCH= 1
CATEGORIES= lang lisp
-MASTER_SITES= SF/sbcl/sbcl/${PORTVERSION} \
- ftp://ftp.SpringDaemons.com/soft/sbcl-binary/:binaries
-DISTFILES= sbcl-${PORTVERSION}-source${EXTRACT_SUFX}
+MASTER_SITES= SF/sbcl/sbcl/${PORTVERSION} LOCAL/marino:binaries
+DISTFILES= sbcl-${PORTVERSION}-source${EXTRACT_SUFX} \
+ sbcl-${PORTVERSION}-documentation-html${EXTRACT_SUFX}
MAINTAINER= ports@FreeBSD.org
COMMENT= Common Lisp development system derived from the CMU CL system
@@ -15,50 +15,20 @@ LIB_DEPENDS= libgmp.so:${PORTSDIR}/math/gmp
USES= gmake tar:bzip2
-OPTIONS_DEFINE= SBCL #THREADS (don't build, see PR 184425)
-
-SBCL_DESC= Bootstrap with installed SBCL binary, if available
-THREADS_DESC= Experimental threading support
-
-CONTRIB_MODULES= asdf \
- sb-aclrepl \
- sb-bsd-sockets \
- sb-cltl2 \
- sb-concurrency \
- sb-cover \
- sb-executable \
- sb-gmp \
- sb-grovel \
- sb-introspect \
- sb-md5 \
- sb-mpfr \
- sb-posix \
- sb-queue \
- sb-rotate-byte \
- sb-rt \
- sb-simple-streams \
- sb-sprof
-NEWBOOTNAME= sbcl-${PORTVERSION}-${ARCH}-freebsd${OSREL:R}
ONLY_FOR_ARCHS= i386 amd64
-ONLY_FOR_ARCHS_REASON= is a native code compiler, and has not been ported to\
- this architecture yet
SBCL_HOME= ${PREFIX}/lib/sbcl
-
-.include <bsd.port.options.mk>
-
+MANUALS= asdf.html sbcl.html
+MODULESDOCS= asdf/README asdf/README.SBCL \
+ sb-aclrepl/README \
+ sb-bsd-sockets/FAQ sb-bsd-sockets/NEWS \
+ sb-md5/README \
+ sb-posix/README \
+ sb-rotate-byte/README \
+ sb-simple-streams/README
+TEXTDOCS= BUGS CREDITS COPYING NEWS PRINCIPLES TLA TODO
CFLAGS+= -fno-omit-frame-pointer
CPPFLAGS+= -I. -DSBCL_PREFIX=\\\"\$$(SBCL_PREFIX)\\\"
-.if ${ARCH} == "i386"
-DYNAMIC_SPACE_SIZE?= 512
-PLIST_SUB+= I386_ONLY="" AMD64_ONLY="@comment "
-SBCLCONFIG= Config.x86-freebsd
-.else
-DYNAMIC_SPACE_SIZE?= 1024
-PLIST_SUB+= I386_ONLY="@comment " AMD64_ONLY=""
-SBCLCONFIG= Config.x86-64-freebsd
-.endif
-
MAKE_SH_ARGS?= --prefix=${PREFIX} \
--dynamic-space-size=${DYNAMIC_SPACE_SIZE} \
--with-sb-core-compression \
@@ -66,69 +36,75 @@ MAKE_SH_ARGS?= --prefix=${PREFIX} \
NM?= /usr/bin/nm
NMFLAGS?= -gp
-.if ${PORT_OPTIONS:MDOCS} || make(makesum)
-DISTFILES+= sbcl-${PORTVERSION}-documentation-html${EXTRACT_SUFX}
-MANUALS= asdf.html sbcl.html
-MODULESDOCS= asdf/README asdf/README.SBCL \
- sb-aclrepl/README \
- sb-bsd-sockets/FAQ sb-bsd-sockets/NEWS \
- sb-md5/README \
- sb-posix/README \
- sb-rotate-byte/README \
- sb-simple-streams/README
-TEXTDOCS= BUGS CREDITS COPYING NEWS PRINCIPLES TLA TODO
-.endif
+BOOT_ARCH_OS_LIST= 1.0.31-amd64-freebsd8 1.0.31-i386-freebsd8 \
+ 1.2.9-x86_64-dragonfly4
-# If the SBCL option is enabled, try to use existing "sbcl" first:
-.if empty(PORT_OPTIONS:MSBCL) || !exists(${LOCALBASE}/bin/sbcl) || make(makesum)
-BOOT_VERSION= 1.0.31
+OPTIONS_DEFINE= SBCL #THREADS (don't build, see PR 184425)
+SBCL_DESC= Bootstrap with installed SBCL binary, if available
+THREADS_DESC= Experimental threading support
-. if make(makesum)
-BOOT_ARCH_OS_LIST= amd64-freebsd8 amd64-freebsd7 i386-freebsd8 \
- i386-freebsd7
-. else
-. if ${OSREL:R} > 8 # We'll use 8.x bootstrap for now
-BOOT_ARCH_OS_LIST= ${ARCH}-freebsd8
-. else
-BOOT_ARCH_OS_LIST= ${ARCH}-freebsd${OSREL:R}
-. endif
+.include <bsd.port.options.mk>
+
+NEWBOOTNAME= sbcl-${PORTVERSION}-${ARCH}-${OPSYS:tl}${OSREL:R}
+PATTERN= *-${ARCH}-${OPSYS:tl}*
+# FreeBSD hack is to support legacy make, add unrelated core fix while here
+. if ${OPSYS} == FreeBSD
+CORE= sbcl.core
+BOOT_DISTNAME= sbcl-1.0.31-${ARCH}-freebsd8
+. else # newer core format
+CORE= sbcl_core
+BOOT_DISTNAME= sbcl-${BOOT_ARCH_OS_LIST:M${PATTERN}}
. endif
+.if make(makesum)
. for BOOT_ARCH_OS in ${BOOT_ARCH_OS_LIST}
-BOOT_DISTNAME= sbcl-${BOOT_VERSION}-${BOOT_ARCH_OS}
-DISTFILES:= ${DISTFILES} ${BOOT_DISTNAME}-binary${EXTRACT_SUFX}:binaries
+DISTFILES:= ${DISTFILES} sbcl-${BOOT_ARCH_OS}-binary.tar.bz2:binaries
. endfor
+.else
+DISTFILES:= ${DISTFILES} ${BOOT_DISTNAME}-binary.tar.bz2:binaries
+.endif
+.if ${ARCH} == "i386"
+DYNAMIC_SPACE_SIZE?= 512
+PLIST_SUB+= I386_ONLY="" AMD64_ONLY="@comment "
+SBCLCONFIG= Config.x86-${OPSYS:tl}
+.else
+DYNAMIC_SPACE_SIZE?= 1024
+PLIST_SUB+= I386_ONLY="@comment " AMD64_ONLY=""
+SBCLCONFIG= Config.x86-64-${OPSYS:tl}
+.endif
+
+# If the SBCL option is enabled, try to use existing "sbcl" first:
+.if empty(PORT_OPTIONS:MSBCL) || !exists(${LOCALBASE}/bin/sbcl)
XC_HOST?= ${WRKDIR}/${BOOT_DISTNAME}/src/runtime/sbcl \
- --core ${WRKDIR}/${BOOT_DISTNAME}/output/sbcl.core \
+ --core ${WRKDIR}/${BOOT_DISTNAME}/output/${CORE} \
--dynamic-space-size ${DYNAMIC_SPACE_SIZE} \
--disable-debugger \
--userinit /dev/null \
--sysinit /dev/null
MAKE_SH_ARGS+= --xc-host='${XC_HOST}'
-
.endif # SBCL
.if ${PORT_OPTIONS:MTHREADS}
MAKE_SH_ARGS+= --with-sb-thread
-.if defined(WITH_FUTEX)
+. if defined(WITH_FUTEX)
MAKE_SH_ARGS+= --with-sb-futex
-.else
+. else
MAKE_SH_ARGS+= --without-sb-futex
-.endif
-.if defined(WITH_SAFEPOINT) || defined(WITH_STRICT_SAFEPOINT)
+. endif
+. if defined(WITH_SAFEPOINT) || defined(WITH_STRICT_SAFEPOINT)
MAKE_SH_ARGS+= --with-sb-safepoint --with-sb-thruption --with-sb-wtimer
-.if defined(WITH_STRICT_SAFEPOINT)
+. if defined(WITH_STRICT_SAFEPOINT)
MAKE_SH_ARGS+= --with-sb-safepoint-strictly
-.else
+. else
MAKE_SH_ARGS+= --without-sb-safepoint-strictly
-.endif
-.else
+. endif
+. else
MAKE_SH_ARGS+= --without-sb-safepoint \
--without-sb-safepoint-strictly \
--without-sb-thruption \
--without-sb-wtimer
-.endif
+. endif
.else
MAKE_SH_ARGS+= --without-sb-thread
.endif
@@ -156,12 +132,11 @@ post-patch:
${WRKSRC}/src/runtime/${SBCLCONFIG}
@${ECHO_CMD} "NM=${NM} ${NMFLAGS}" >> \
${WRKSRC}/src/runtime/${SBCLCONFIG}
- @${REINPLACE_CMD} -E -e 's,-lthr,-pthread,g' \
- -e 's,-lpthread,-pthread,g' ${WRKSRC}/src/runtime/${SBCLCONFIG}
+ @${REINPLACE_CMD} -E -e 's,-lthr,-lpthread,g' \
+ ${WRKSRC}/src/runtime/${SBCLCONFIG}
@${GREP} -Fe '.core' -l -r ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} \
- -e 's|\.core|_core|g'
- @${REINPLACE_CMD} \
- -e 's|/usr/local|${PREFIX}|g' \
+ -e 's|\.core|_core|g'
+ @${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' \
${WRKSRC}/doc/sbcl.1
@${REINPLACE_CMD} -E -e 's!-sbcl-shared!& ${CFLAGS}!' \
-e 's!\$$(TEST_FILESTEM|x|1)_core!$${\1}_core!g' \
@@ -185,26 +160,21 @@ post-patch:
${WRKSRC}/release.sh \
${WRKSRC}/src/code/run-program.lisp \
${WRKSRC}/tests/run-compiler.sh
+ @${FIND} ${WRKSRC} \( -name '*.orig' -o -name '*.bak' \) -delete
do-build:
- @${FIND} ${WRKSRC} \( -name '*.orig' -o -name '*.bak' \) -delete
- @(cd ${WRKSRC} && ${SETENV} CC="${CC}" ${SH} make.sh ${MAKE_SH_ARGS})
- @${RM} -rf ${WRKSRC}/contrib/sb-cover/test-output
- @${REINPLACE_CMD} -E -e \
+ (cd ${WRKSRC} && ${SETENV} CC="${CC}" ${SH} make.sh ${MAKE_SH_ARGS})
+ ${RM} -rf ${WRKSRC}/contrib/sb-cover/test-output
+ ${REINPLACE_CMD} -E -e \
's|\$$Date\$$|'"`${SETENV} LANG=C /bin/date '+%B %d, %Y'`|g" \
${WRKSRC}/doc/sbcl.1
do-install:
- ${MKDIR} ${STAGEDIR}${SBCL_HOME}/
+ ${MKDIR} ${STAGEDIR}${SBCL_HOME}/contrib
${INSTALL_PROGRAM} ${WRKSRC}/src/runtime/sbcl ${STAGEDIR}${PREFIX}/bin/
${INSTALL_DATA} ${WRKSRC}/output/sbcl_core ${STAGEDIR}${SBCL_HOME}/
- ${MKDIR} ${STAGEDIR}${SBCL_HOME}/contrib
${INSTALL_DATA} ${WRKSRC}/obj/sbcl-home/contrib/*.fasl ${STAGEDIR}${SBCL_HOME}/contrib/
${INSTALL_DATA} ${WRKSRC}/obj/sbcl-home/contrib/*.asd ${STAGEDIR}${SBCL_HOME}/contrib/
-#.for MOD in ${CONTRIB_MODULES}
-# (if test -f ${WRKSRC}/contrib/${MOD}/${MOD}.asd; then ${INSTALL_DATA} \
-# ${WRKSRC}/contrib/${MOD}/*.lisp ${STAGEDIR}${SBCL_HOME}/contrib/; fi)
-#.endfor
.if ${PORT_OPTIONS:MDOCS}
${MKDIR} ${STAGEDIR}${DOCSDIR}/
${INSTALL_DATA} ${MANUALS:S,^, ${WRKSRC}/doc/manual/,g} ${STAGEDIR}${DOCSDIR}/
diff --git a/lang/sbcl/distinfo b/lang/sbcl/distinfo
index f1f55ed77b0d..cdf2a853fcaf 100644
--- a/lang/sbcl/distinfo
+++ b/lang/sbcl/distinfo
@@ -4,9 +4,7 @@ SHA256 (sbcl-1.2.9-documentation-html.tar.bz2) = d7a75b2e53f60117283fcc344c031b5
SIZE (sbcl-1.2.9-documentation-html.tar.bz2) = 214153
SHA256 (sbcl-1.0.31-amd64-freebsd8-binary.tar.bz2) = 06a1e4e3a5f5f8e012ff6037a51624d7d1f34bff0979ce45e70418a293412b4e
SIZE (sbcl-1.0.31-amd64-freebsd8-binary.tar.bz2) = 8397764
-SHA256 (sbcl-1.0.31-amd64-freebsd7-binary.tar.bz2) = fcbd5ed1948312a7b6eff7e6daf736e41be945a2c57bcee4b64f172ddde518b8
-SIZE (sbcl-1.0.31-amd64-freebsd7-binary.tar.bz2) = 8398964
SHA256 (sbcl-1.0.31-i386-freebsd8-binary.tar.bz2) = fd2348749a2babf301a99449d246b349a1285fc0bca8b83bde0bfa7187cf3dd7
SIZE (sbcl-1.0.31-i386-freebsd8-binary.tar.bz2) = 8475244
-SHA256 (sbcl-1.0.31-i386-freebsd7-binary.tar.bz2) = 5202f6d7a8a1f3b1f19cbd4c65d874b85e8015fc5efec71bffef407c25edbe77
-SIZE (sbcl-1.0.31-i386-freebsd7-binary.tar.bz2) = 8474568
+SHA256 (sbcl-1.2.9-x86_64-dragonfly4-binary.tar.bz2) = 2e32a22ef3a528d7247c0e3a72a3ac672b8b6848ac2d35fbad52a3d1475130dc
+SIZE (sbcl-1.2.9-x86_64-dragonfly4-binary.tar.bz2) = 10224580