aboutsummaryrefslogtreecommitdiff
path: root/lang/sbcl/Makefile
diff options
context:
space:
mode:
authorBrendan Fabeny <bf@FreeBSD.org>2012-04-23 09:27:42 +0000
committerBrendan Fabeny <bf@FreeBSD.org>2012-04-23 09:27:42 +0000
commit0eb8a47869c51f4daeb8b0d253e3e070df076a6f (patch)
treee529df66fedf4ec8bb51dcd002f09e994dafbaa8 /lang/sbcl/Makefile
parent2518def789fc7b033a473419e97e4bdbd81fa7de (diff)
downloadports-0eb8a47869c51f4daeb8b0d253e3e070df076a6f.tar.gz
ports-0eb8a47869c51f4daeb8b0d253e3e070df076a6f.zip
Notes
Diffstat (limited to 'lang/sbcl/Makefile')
-rw-r--r--lang/sbcl/Makefile204
1 files changed, 76 insertions, 128 deletions
diff --git a/lang/sbcl/Makefile b/lang/sbcl/Makefile
index c2e59551a0af..6dd528d6b2a3 100644
--- a/lang/sbcl/Makefile
+++ b/lang/sbcl/Makefile
@@ -9,53 +9,27 @@
#
PORTNAME= sbcl
-PORTVERSION= 1.0.55.0
+PORTVERSION= 1.0.56
PORTEPOCH= 1
CATEGORIES= lang lisp
-MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTVERSION:R} \
+MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTVERSION} \
ftp://ftp.SpringDaemons.com/soft/sbcl-binary/:binaries
-DISTNAME= ${PORTNAME}-${PORTVERSION:R}-source${SBCLPATCHLEVEL}
+DISTFILES= \
+ ${PORTNAME}-${PORTVERSION}-source${EXTRACT_SUFX}
+.if !defined(NOPORTDOCS) || make(makesum)
+DISTFILES+= \
+ ${PORTNAME}-${PORTVERSION}-documentation-html${EXTRACT_SUFX}
+.endif
MAINTAINER= bf@FreeBSD.org
COMMENT= A Common Lisp development system derived from the CMU CL system
-# More platforms are supported, but on Linux.
-ONLY_FOR_ARCHS= i386 amd64
-ONLY_FOR_ARCHS_REASON= is a native code compiler, and has not been ported to this architecture yet
-
-BROKEN= does not build
-
USE_BZIP2= yes
USE_GMAKE= yes
-CFLAGS+= -DSBCL_HOME=\\\"${SBCL_HOME}\\\"
-CPPFLAGS+= -I.
-SBCL_HOME= ${PREFIX}/lib/sbcl/
OPTIONS= SBCL "Use installed SBCL binary if available" off \
- THREADS "Enable experimental threading support" off \
- PDF "Build PDF documentation" on \
- PS "Build PostScript documentation" off
-
-MAN1= sbcl.1
-INFODIR= ${PREFIX}/${INFO_PATH}
-.if !defined(NOPORTDOCS)
-INFO= ${MANUALS_SRC} sbcl-internals
-MANUALS_SRC= asdf sbcl
-TEXTDOCS= BUGS CREDITS COPYING NEWS PRINCIPLES TLA TODO
-MANUALS= ${MANUALS_SRC:S,$,.html,g}
-MODULESDOCS= asdf/README asdf/README.SBCL \
- asdf-install/README \
- 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
-.endif
+ THREADS "Enable experimental threading support" off
-OSVER_MAJOR= ${OSREL:R}
-NEWBOOTNAME= ${PORTNAME}-${PORTVERSION:R}-${ARCH}-freebsd${OSVER_MAJOR}
-DOC_TARGETS= info html
CONTRIB_MODULES= asdf \
asdf-install \
sb-aclrepl \
@@ -73,146 +47,129 @@ CONTRIB_MODULES= asdf \
sb-rt \
sb-simple-streams \
sb-sprof
+MAN1= sbcl.1
+NEWBOOTNAME= ${PORTNAME}-${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
-.if ${PORTVERSION:E} == 0
-SBCLPATCHLEVEL= #empty
-.else
-SBCLPATCHLEVEL= -r${PORTVERSION:E}
+.if !defined(NOPORTDOCS)
+MANUALS= asdf.html sbcl.html
+MODULESDOCS= asdf/README asdf/README.SBCL \
+ asdf-install/README \
+ 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
-WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION:R}
-
.include <bsd.port.pre.mk>
-MAKE_SH_ARGS?= --with-sb-core-compression
-.if defined(WITH_THREADS)
-MAKE_SH_ARGS+= --with-sb-thread
-.else
-MAKE_SH_ARGS+= --without-sb-thread
-.endif
-
-.if !defined(NOPORTDOCS) && (defined(WITH_PDF) || defined(WITH_PS))
-BUILD_DEPENDS+= dot:${PORTSDIR}/graphics/graphviz
-.endif
-
-.if !defined(NOPORTDOCS) && defined(WITH_PDF)
-BUILD_DEPENDS+= latex:${PORTSDIR}/print/teTeX-base \
- texi2dvi:${PORTSDIR}/print/texinfo
-DOC_TARGETS+= pdf
-PLIST_SUB+= PDF=""
-MANUALS+= ${MANUALS_SRC:S,$,.pdf,g}
-.else
-PLIST_SUB+= PDF="@comment "
-.endif
-
-.if !defined(NOPORTDOCS) && defined(WITH_PS)
-BUILD_DEPENDS+= dvips:${PORTSDIR}/print/dvips
-DOC_TARGETS+= ps
-PLIST_SUB+= PS=""
-MANUALS+= ${MANUALS_SRC:S,$,.ps,g}
-.else
-PLIST_SUB+= PS="@comment "
-.endif
+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
-DYNAMIC_SPACE_SIZE?= 512
.else
+DYNAMIC_SPACE_SIZE?= 1024
PLIST_SUB+= I386_ONLY="@comment " AMD64_ONLY=""
SBCLCONFIG= Config.x86-64-freebsd
-DYNAMIC_SPACE_SIZE?= 1024
.endif
+MAKE_SH_ARGS?= --prefix=${PREFIX} --dynamic-space-size=${DYNAMIC_SPACE_SIZE} \
+--with-sb-core-compression
+NM?= /usr/bin/nm
+NMFLAGS?= -gp
+
# If WITH_SBCL is defined, try to use existing "sbcl" first.
-.if defined(WITH_SBCL) && exists(${LOCALBASE}/bin/sbcl) && !make(makesum)
-LISP_CMD= ""
-.else
+.if !defined(WITH_SBCL) || !exists(${LOCALBASE}/bin/sbcl) || make(makesum)
BOOT_VERSION= 1.0.31
. if make(makesum)
BOOT_ARCH_OS_LIST= amd64-freebsd8 amd64-freebsd7 i386-freebsd8 \
i386-freebsd7
. else
-. if ${OSVER_MAJOR} > 8 # We'll use 8.x bootstrap for now
+. 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${OSVER_MAJOR}
+BOOT_ARCH_OS_LIST= ${ARCH}-freebsd${OSREL:R}
. endif
. endif
-. ifdef(DYNAMIC_SPACE_SIZE)
-LISP_EXTRA_ARG= --dynamic-space-size ${DYNAMIC_SPACE_SIZE}
-. endif
-
-DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
. for BOOT_ARCH_OS in ${BOOT_ARCH_OS_LIST}
BOOT_DISTNAME= ${PORTNAME}-${BOOT_VERSION}-${BOOT_ARCH_OS}
DISTFILES:= ${DISTFILES} ${BOOT_DISTNAME}-binary${EXTRACT_SUFX}:binaries
. endfor
-LISP_CMD= "${WRKDIR}/${BOOT_DISTNAME}/src/runtime/sbcl --core ${WRKDIR}/${BOOT_DISTNAME}/output/sbcl.core ${LISP_EXTRA_ARG} --disable-debugger --userinit /dev/null --sysinit /dev/null"
+
+XC_HOST?= ${WRKDIR}/${BOOT_DISTNAME}/src/runtime/sbcl --core \
+${WRKDIR}/${BOOT_DISTNAME}/output/sbcl.core \
+--dynamic-space-size ${DYNAMIC_SPACE_SIZE} \
+--disable-debugger --userinit /dev/null --sysinit /dev/null
+MAKE_SH_ARGS+= --xc-host='${XC_HOST}'
.endif # defined(WITH_SBCL)
+.if defined(WITH_THREADS)
+MAKE_SH_ARGS+= --with-sb-thread
+.else
+MAKE_SH_ARGS+= --without-sb-thread
+.endif
+
pre-everything::
@${ECHO_MSG}
@${ECHO_MSG} "---------------------------------------------------------"
- @${ECHO_MSG} "You might need to increase memory limits in order to"
+ @${ECHO_MSG} "You might need to adjust memory limits in order to"
@${ECHO_MSG} "build SBCL."
@${ECHO_MSG}
- @${ECHO_MSG} "You can use the DYNAMIC_SPACE_SIZE knob to tweak the size"
- @${ECHO_MSG} "of SBCL dynamically allocated memory."
+ @${ECHO_MSG} "You can use the DYNAMIC_SPACE_SIZE knob to change the size"
+ @${ECHO_MSG} "of SBCL dynamically-allocated memory."
@${ECHO_MSG} "---------------------------------------------------------"
@${ECHO_MSG}
post-patch:
@${ECHO_CMD} "CC=${CC}" >> ${WRKSRC}/src/runtime/${SBCLCONFIG}
- @${ECHO_CMD} "CFLAGS=${CFLAGS} -fno-omit-frame-pointer" >> \
- ${WRKSRC}/src/runtime/${SBCLCONFIG}
+ @${ECHO_CMD} "CFLAGS=${CFLAGS}" >> \
+ ${WRKSRC}/src/runtime/${SBCLCONFIG}
@${ECHO_CMD} "CPPFLAGS=${CPPFLAGS}" >> \
- ${WRKSRC}/src/runtime/${SBCLCONFIG}
+ ${WRKSRC}/src/runtime/${SBCLCONFIG}
@${ECHO_CMD} "GREP=${GREP}" >> ${WRKSRC}/src/runtime/${SBCLCONFIG}
@${ECHO_CMD} "LD=${LD}" >> ${WRKSRC}/src/runtime/${SBCLCONFIG}
@${ECHO_CMD} "LINKFLAGS=${LDFLAGS} -dynamic -rdynamic" >> \
- ${WRKSRC}/src/runtime/${SBCLCONFIG}
+ ${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}
-.ifdef(NM)
- @${ECHO_CMD} "NM=${NM} -gp" >> ${WRKSRC}/src/runtime/${SBCLCONFIG}
-.endif
@${GREP} -Fe '.core' -l -r ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} \
-e 's|\.core|_core|g'
@${REINPLACE_CMD} \
- -e 's|/etc/sbclrc|${PREFIX}&|g' \
-e 's|/usr/local|${PREFIX}|g' \
- ${WRKSRC}/doc/sbcl.1 \
- ${WRKSRC}/doc/manual/*.texinfo \
- ${WRKSRC}/src/code/toplevel.lisp
- @${REINPLACE_CMD} -e '\|CC=|s|gcc|${CC}|' ${WRKSRC}/contrib/asdf-module.mk
- @${REINPLACE_CMD} -e 's|"cc"|"${CC}"|' \
- -e 's|"-O3"|"${CFLAGS}"|' \
- ${WRKSRC}/tests/swap-lispobjs.impure.lisp
- @${REINPLACE_CMD} -e 's|cc -c|${CC} -c|' \
- -e 's|ld \$$SO_FLAGS|${LD} \$$SO_FLAGS|' \
- ${WRKSRC}/tests/foreign.test.sh
- @${REINPLACE_CMD} -E -e 's,makeinfo,makeinfo --no-split,g' \
- ${WRKSRC}/doc/internals/Makefile
+ ${WRKSRC}/doc/sbcl.1
+ @${REINPLACE_CMD} -e '\|CC?=|s|gcc|${CC}|' \
+ ${WRKSRC}/contrib/asdf-module.mk
+ @${REINPLACE_CMD} -E -e 's!-sbcl-shared!& ${CFLAGS}!' \
+ -e 's!\$$(TEST_FILESTEM|1)_core!$${\1}_core!g' \
+ ${WRKSRC}/tests/core.test.sh \
+ ${WRKSRC}/tests/foreign.test.sh
+ @${REINPLACE_CMD} -E -e 's!"-O3"!!' \
+ -e 's!("-sbcl-(pic|shared)"[[:blank:]]*)+!& ${CFLAGS:C/.*/"&"/}!' \
+ ${WRKSRC}/tests/foreign-stack-alignment.impure.lisp \
+ ${WRKSRC}/tests/kill-non-lisp-thread.impure.lisp \
+ ${WRKSRC}/tests/swap-lispobjs.impure.lisp \
+ ${WRKSRC}/tests/threads.impure.lisp
+ @${REINPLACE_CMD} -e 's|( cd ./doc ; sh ./clean.sh )|#&|' \
+ ${WRKSRC}/clean.sh
do-build:
@${FIND} ${WRKSRC} \( -name '*.orig' -o -name '*.bak' \) -delete
- @(cd ${WRKSRC} && ${SETENV} CC="${CC}" INSTALL_ROOT=${PREFIX} \
- LISP_EXTRA_ARG="${LISP_EXTRA_ARG}" \
- ${SH} make.sh ${LISP_CMD} ${MAKE_SH_ARGS})
+ @(cd ${WRKSRC} && ${SETENV} CC="${CC}" ${SH} make.sh ${MAKE_SH_ARGS})
@${RM} -rf ${WRKSRC}/contrib/sb-cover/test-output
-.if !defined(NOPORTDOCS)
- @(cd ${WRKSRC}/doc/manual && ${SETENV} \
- LISP_EXTRA_ARG="${LISP_EXTRA_ARG}" \
- ${GMAKE} MAKEINFO='makeinfo --no-split' ${DOC_TARGETS})
- @(cd ${WRKSRC}/doc/internals && ${GMAKE} sbcl-internals.info)
-.if defined(WITH_PDF)
- @(cd ${WRKSRC}/doc/internals && ${GMAKE} sbcl-internals.pdf)
-.endif
-.endif
@${REINPLACE_CMD} -E -e \
's|\$$Date\$$|'"`${SETENV} LANG=C /bin/date '+%B %d, %Y'`|g" \
${WRKSRC}/doc/sbcl.1
@@ -230,14 +187,6 @@ do-install:
.endfor
.if !defined(NOPORTDOCS)
${MKDIR} ${DOCSDIR}/
- ${INSTALL_DATA} ${MANUALS_SRC:S,^,${WRKSRC}/doc/manual/,g:S,$,.info,g} \
- ${INFODIR}/
- ${INSTALL_DATA} ${WRKSRC}/doc/internals/sbcl-internals.info \
- ${INFODIR}/
-.if defined(WITH_PDF)
- ${INSTALL_DATA} ${WRKSRC}/doc/internals/sbcl-internals.pdf \
- ${DOCSDIR}/
-.endif
${INSTALL_DATA} ${MANUALS:S,^, ${WRKSRC}/doc/manual/,g} ${DOCSDIR}/
${INSTALL_DATA} ${TEXTDOCS:S,^,${WRKSRC}/,g} ${DOCSDIR}/
${MKDIR} ${MODULESDOCS:C,/[^/]+$,,g:u:S,^,${DOCSDIR}/,g}
@@ -250,8 +199,7 @@ do-install:
@${TOUCH} ${SBCL_HOME}/site-systems/.keep_me
check regression-test test: build
- (cd ${WRKSRC}/tests && ${SETENV} CC="${CC}" \
- LISP_EXTRA_ARG="${LISP_EXTRA_ARG}" ${SH} run-tests.sh)
+ (cd ${WRKSRC}/tests && ${SETENV} CC="${CC}" ${SH} run-tests.sh)
bootstrap:
${CP} -r ${WRKSRC} ${WRKDIR}/${NEWBOOTNAME}