Lines 1-117
Link Here
|
1 |
# $FreeBSD$ |
1 |
# $FreeBSD: head/lang/sbcl/Makefile 364741 2014-08-12 20:19:53Z olgeni $ |
2 |
|
2 |
|
3 |
PORTNAME= sbcl |
3 |
PORTNAME= sbcl |
4 |
PORTVERSION= 1.2.9 |
4 |
PORTVERSION= 1.2.10 |
5 |
PORTREVISION= 1 |
|
|
6 |
PORTEPOCH= 1 |
5 |
PORTEPOCH= 1 |
7 |
CATEGORIES= lang lisp |
6 |
CATEGORIES= lang lisp |
8 |
MASTER_SITES= SF/sbcl/sbcl/${PORTVERSION} LOCAL/marino:binaries |
7 |
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTVERSION} \ |
9 |
DISTFILES= sbcl-${PORTVERSION}-source${EXTRACT_SUFX} \ |
8 |
ftp://ftp.SpringDaemons.com/soft/sbcl-binary/:binaries |
10 |
sbcl-${PORTVERSION}-documentation-html${EXTRACT_SUFX} |
9 |
DISTFILES= \ |
|
|
10 |
${PORTNAME}-${PORTVERSION}-source${EXTRACT_SUFX} |
11 |
|
11 |
|
12 |
MAINTAINER= ports@FreeBSD.org |
12 |
MAINTAINER= jack@crepinc.com |
13 |
COMMENT= Common Lisp development system derived from the CMU CL system |
13 |
COMMENT= Common Lisp development system derived from the CMU CL system |
14 |
|
14 |
|
15 |
LIB_DEPENDS= libgmp.so:${PORTSDIR}/math/gmp |
15 |
LIB_DEPENDS= libgmp.so:${PORTSDIR}/math/gmp |
16 |
|
16 |
|
17 |
USES= gmake tar:bzip2 |
17 |
USES= gmake tar:bzip2 |
18 |
|
18 |
|
19 |
ONLY_FOR_ARCHS= i386 amd64 |
19 |
OPTIONS_DEFINE= SBCL THREADS |
20 |
SBCL_HOME= ${PREFIX}/lib/sbcl |
|
|
21 |
MANUALS= asdf.html sbcl.html |
22 |
MODULESDOCS= asdf/README \ |
23 |
asdf/README.SBCL \ |
24 |
sb-aclrepl/README \ |
25 |
sb-bsd-sockets/FAQ \ |
26 |
sb-bsd-sockets/NEWS \ |
27 |
sb-md5/README \ |
28 |
sb-posix/README \ |
29 |
sb-rotate-byte/README \ |
30 |
sb-simple-streams/README |
31 |
TEXTDOCS= BUGS CREDITS COPYING NEWS PRINCIPLES TLA TODO |
32 |
CFLAGS+= -fno-omit-frame-pointer |
33 |
CPPFLAGS+= -I. -DSBCL_PREFIX=\\\"\$$(SBCL_PREFIX)\\\" |
34 |
CONMODULES= asdf sb-aclrepl sb-bsd-sockets sb-cltl2 sb-concurrency \ |
35 |
sb-cover sb-executable sb-gmp sb-grovel sb-introspect \ |
36 |
sb-md5 sb-mpfr sb-posix sb-queue sb-rotate-byte sb-rt \ |
37 |
sb-simple-streams sb-sprof |
38 |
|
39 |
MAKE_SH_ARGS?= --prefix=${PREFIX} \ |
40 |
--dynamic-space-size=${DYNAMIC_SPACE_SIZE} \ |
41 |
--with-sb-core-compression \ |
42 |
--with-sb-qshow |
43 |
NM?= /usr/bin/nm |
44 |
NMFLAGS?= -gp |
45 |
|
20 |
|
46 |
BOOT_ARCH_OS_LIST= 1.0.31-amd64-freebsd8 1.0.31-i386-freebsd8 \ |
21 |
SBCL_DESC= Bootstrap with installed SBCL binary, if available |
47 |
1.2.9-x86_64-dragonfly4 |
22 |
THREADS_DESC= Experimental threading support |
48 |
|
23 |
|
49 |
OPTIONS_DEFINE= SBCL #THREADS (don't build, see PR 184425) |
24 |
CONTRIB_MODULES= asdf \ |
50 |
SBCL_DESC= Bootstrap with installed SBCL binary, if available |
25 |
sb-aclrepl \ |
51 |
THREADS_DESC= Experimental threading support |
26 |
sb-bsd-sockets \ |
|
|
27 |
sb-cltl2 \ |
28 |
sb-concurrency \ |
29 |
sb-cover \ |
30 |
sb-executable \ |
31 |
sb-gmp \ |
32 |
sb-grovel \ |
33 |
sb-introspect \ |
34 |
sb-md5 \ |
35 |
sb-mpfr \ |
36 |
sb-posix \ |
37 |
sb-queue \ |
38 |
sb-rotate-byte \ |
39 |
sb-rt \ |
40 |
sb-simple-streams \ |
41 |
sb-sprof |
42 |
NEWBOOTNAME= ${PORTNAME}-${PORTVERSION}-${ARCH}-freebsd${OSREL:R} |
43 |
ONLY_FOR_ARCHS= i386 amd64 |
44 |
ONLY_FOR_ARCHS_REASON= is a native code compiler, and has not been ported to\ |
45 |
this architecture yet |
46 |
SBCL_HOME= ${PREFIX}/lib/sbcl |
52 |
|
47 |
|
53 |
.include <bsd.port.options.mk> |
48 |
.include <bsd.port.options.mk> |
54 |
|
49 |
|
55 |
NEWBOOTNAME= sbcl-${PORTVERSION}-${ARCH}-${OPSYS:tl}${OSREL:R} |
50 |
CFLAGS+= -fno-omit-frame-pointer |
56 |
PATTERN= *-${ARCH}-${OPSYS:tl}* |
51 |
CPPFLAGS+= -I. -DSBCL_PREFIX=\\\"\$$(SBCL_PREFIX)\\\" |
57 |
# FreeBSD hack is to support legacy make, add unrelated core fix while here |
|
|
58 |
. if ${OPSYS} == FreeBSD |
59 |
CORE= sbcl.core |
60 |
BOOT_DISTNAME= sbcl-1.0.31-${ARCH}-freebsd8 |
61 |
. else # newer core format |
62 |
CORE= sbcl_core |
63 |
BOOT_DISTNAME= sbcl-${BOOT_ARCH_OS_LIST:M${PATTERN}} |
64 |
. endif |
65 |
|
66 |
.if make(makesum) |
67 |
. for BOOT_ARCH_OS in ${BOOT_ARCH_OS_LIST} |
68 |
DISTFILES:= ${DISTFILES} sbcl-${BOOT_ARCH_OS}-binary.tar.bz2:binaries |
69 |
. endfor |
70 |
.else |
71 |
DISTFILES:= ${DISTFILES} ${BOOT_DISTNAME}-binary.tar.bz2:binaries |
72 |
.endif |
73 |
|
52 |
|
74 |
.if ${ARCH} == "i386" |
53 |
.if ${ARCH} == "i386" |
75 |
DYNAMIC_SPACE_SIZE?= 512 |
54 |
DYNAMIC_SPACE_SIZE?= 512 |
76 |
PLIST_SUB+= I386_ONLY="" AMD64_ONLY="@comment " |
55 |
PLIST_SUB+= I386_ONLY="" AMD64_ONLY="@comment " |
77 |
SBCLCONFIG= Config.x86-${OPSYS:tl} |
56 |
SBCLCONFIG= Config.x86-freebsd |
78 |
.else |
57 |
.else |
79 |
DYNAMIC_SPACE_SIZE?= 1024 |
58 |
DYNAMIC_SPACE_SIZE?= 1024 |
80 |
PLIST_SUB+= I386_ONLY="@comment " AMD64_ONLY="" |
59 |
PLIST_SUB+= I386_ONLY="@comment " AMD64_ONLY="" |
81 |
SBCLCONFIG= Config.x86-64-${OPSYS:tl} |
60 |
SBCLCONFIG= Config.x86-64-freebsd |
|
|
61 |
.endif |
62 |
|
63 |
MAKE_SH_ARGS?= --prefix=${PREFIX} --dynamic-space-size=${DYNAMIC_SPACE_SIZE} \ |
64 |
--with-sb-core-compression --with-sb-qshow |
65 |
NM?= /usr/bin/nm |
66 |
NMFLAGS?= -gp |
67 |
|
68 |
.if ${PORT_OPTIONS:MDOCS} || make(makesum) |
69 |
DISTFILES+= \ |
70 |
${PORTNAME}-${PORTVERSION}-documentation-html${EXTRACT_SUFX} |
71 |
MANUALS= asdf.html sbcl.html |
72 |
MODULESDOCS= asdf/README asdf/README.SBCL \ |
73 |
sb-simple-streams/README \ |
74 |
sb-mpfr/README.md \ |
75 |
sb-gmp/README.md \ |
76 |
sb-posix/README \ |
77 |
sb-md5/README \ |
78 |
sb-bsd-sockets/NEWS \ |
79 |
sb-bsd-sockets/FAQ \ |
80 |
sb-aclrepl/README \ |
81 |
sb-rotate-byte/README \ |
82 |
|
83 |
TEXTDOCS= BUGS CREDITS COPYING NEWS PRINCIPLES TLA TODO |
82 |
.endif |
84 |
.endif |
83 |
|
85 |
|
84 |
# If the SBCL option is enabled, try to use existing "sbcl" first: |
86 |
# If the SBCL option is enabled, try to use existing "sbcl" first: |
85 |
.if empty(PORT_OPTIONS:MSBCL) || !exists(${LOCALBASE}/bin/sbcl) |
87 |
.if empty(PORT_OPTIONS:MSBCL) || !exists(${LOCALBASE}/bin/sbcl) || make(makesum) |
86 |
XC_HOST?= ${WRKDIR}/${BOOT_DISTNAME}/src/runtime/sbcl \ |
88 |
BOOT_VERSION= 1.0.31 |
87 |
--core ${WRKDIR}/${BOOT_DISTNAME}/output/${CORE} \ |
89 |
|
88 |
--dynamic-space-size ${DYNAMIC_SPACE_SIZE} \ |
90 |
. if make(makesum) |
89 |
--disable-debugger \ |
91 |
BOOT_ARCH_OS_LIST= amd64-freebsd8 i386-freebsd8 |
90 |
--userinit /dev/null \ |
92 |
. else |
91 |
--sysinit /dev/null |
93 |
. if ${OSREL:R} > 8 # We'll use 8.x bootstrap for now |
|
|
94 |
BOOT_ARCH_OS_LIST= ${ARCH}-freebsd8 |
95 |
. else |
96 |
BOOT_ARCH_OS_LIST= ${ARCH}-freebsd${OSREL:R} |
97 |
. endif |
98 |
. endif |
99 |
|
100 |
. for BOOT_ARCH_OS in ${BOOT_ARCH_OS_LIST} |
101 |
BOOT_DISTNAME= ${PORTNAME}-${BOOT_VERSION}-${BOOT_ARCH_OS} |
102 |
DISTFILES:= ${DISTFILES} ${BOOT_DISTNAME}-binary${EXTRACT_SUFX}:binaries |
103 |
. endfor |
104 |
|
105 |
XC_HOST?= ${WRKDIR}/${BOOT_DISTNAME}/src/runtime/sbcl --core \ |
106 |
${WRKDIR}/${BOOT_DISTNAME}/output/sbcl.core \ |
107 |
--dynamic-space-size ${DYNAMIC_SPACE_SIZE} \ |
108 |
--disable-debugger --userinit /dev/null --sysinit /dev/null |
92 |
MAKE_SH_ARGS+= --xc-host='${XC_HOST}' |
109 |
MAKE_SH_ARGS+= --xc-host='${XC_HOST}' |
|
|
110 |
|
93 |
.endif # SBCL |
111 |
.endif # SBCL |
94 |
|
112 |
|
95 |
.if ${PORT_OPTIONS:MTHREADS} |
113 |
.if ${PORT_OPTIONS:MTHREADS} |
96 |
MAKE_SH_ARGS+= --with-sb-thread |
114 |
MAKE_SH_ARGS+= --with-sb-thread |
97 |
. if defined(WITH_FUTEX) |
115 |
.if defined(WITH_FUTEX) |
98 |
MAKE_SH_ARGS+= --with-sb-futex |
116 |
MAKE_SH_ARGS+= --with-sb-futex |
99 |
. else |
117 |
.else |
100 |
MAKE_SH_ARGS+= --without-sb-futex |
118 |
MAKE_SH_ARGS+= --without-sb-futex |
101 |
. endif |
119 |
.endif |
102 |
. if defined(WITH_SAFEPOINT) || defined(WITH_STRICT_SAFEPOINT) |
120 |
.if defined(WITH_SAFEPOINT) || defined(WITH_STRICT_SAFEPOINT) |
103 |
MAKE_SH_ARGS+= --with-sb-safepoint --with-sb-thruption --with-sb-wtimer |
121 |
MAKE_SH_ARGS+= --with-sb-safepoint --with-sb-thruption --with-sb-wtimer |
104 |
. if defined(WITH_STRICT_SAFEPOINT) |
122 |
.if defined(WITH_STRICT_SAFEPOINT) |
105 |
MAKE_SH_ARGS+= --with-sb-safepoint-strictly |
123 |
MAKE_SH_ARGS+= --with-sb-safepoint-strictly |
106 |
. else |
124 |
.else |
107 |
MAKE_SH_ARGS+= --without-sb-safepoint-strictly |
125 |
MAKE_SH_ARGS+= --without-sb-safepoint-strictly |
108 |
. endif |
126 |
.endif |
109 |
. else |
127 |
.else |
110 |
MAKE_SH_ARGS+= --without-sb-safepoint \ |
128 |
MAKE_SH_ARGS+= --without-sb-safepoint --without-sb-safepoint-strictly \ |
111 |
--without-sb-safepoint-strictly \ |
129 |
--without-sb-thruption --without-sb-wtimer |
112 |
--without-sb-thruption \ |
130 |
.endif |
113 |
--without-sb-wtimer |
|
|
114 |
. endif |
115 |
.else |
131 |
.else |
116 |
MAKE_SH_ARGS+= --without-sb-thread |
132 |
MAKE_SH_ARGS+= --without-sb-thread |
117 |
.endif |
133 |
.endif |
Lines 139-149
Link Here
|
139 |
${WRKSRC}/src/runtime/${SBCLCONFIG} |
155 |
${WRKSRC}/src/runtime/${SBCLCONFIG} |
140 |
@${ECHO_CMD} "NM=${NM} ${NMFLAGS}" >> \ |
156 |
@${ECHO_CMD} "NM=${NM} ${NMFLAGS}" >> \ |
141 |
${WRKSRC}/src/runtime/${SBCLCONFIG} |
157 |
${WRKSRC}/src/runtime/${SBCLCONFIG} |
142 |
@${REINPLACE_CMD} -E -e 's,-lthr,-lpthread,g' \ |
158 |
@${REINPLACE_CMD} -E -e 's,-lthr,-pthread,g' \ |
143 |
${WRKSRC}/src/runtime/${SBCLCONFIG} |
159 |
-e 's,-lpthread,-pthread,g' ${WRKSRC}/src/runtime/${SBCLCONFIG} |
144 |
@${GREP} -Fe '.core' -l -r ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} \ |
160 |
@${GREP} -Fe '.core' -l -r ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} \ |
145 |
-e 's|\.core|_core|g' |
161 |
-e 's|\.core|_core|g' |
146 |
@${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' \ |
162 |
@${REINPLACE_CMD} \ |
|
|
163 |
-e 's|/usr/local|${PREFIX}|g' \ |
147 |
${WRKSRC}/doc/sbcl.1 |
164 |
${WRKSRC}/doc/sbcl.1 |
148 |
@${REINPLACE_CMD} -E -e 's!-sbcl-shared!& ${CFLAGS}!' \ |
165 |
@${REINPLACE_CMD} -E -e 's!-sbcl-shared!& ${CFLAGS}!' \ |
149 |
-e 's!\$$(TEST_FILESTEM|x|1)_core!$${\1}_core!g' \ |
166 |
-e 's!\$$(TEST_FILESTEM|x|1)_core!$${\1}_core!g' \ |
Lines 167-211
Link Here
|
167 |
${WRKSRC}/release.sh \ |
184 |
${WRKSRC}/release.sh \ |
168 |
${WRKSRC}/src/code/run-program.lisp \ |
185 |
${WRKSRC}/src/code/run-program.lisp \ |
169 |
${WRKSRC}/tests/run-compiler.sh |
186 |
${WRKSRC}/tests/run-compiler.sh |
170 |
@${FIND} ${WRKSRC} \( -name '*.orig' -o -name '*.bak' \) -delete |
|
|
171 |
|
187 |
|
172 |
do-build: |
188 |
do-build: |
173 |
(cd ${WRKSRC} && ${SETENV} CC="${CC}" ${SH} make.sh ${MAKE_SH_ARGS}) |
189 |
@${FIND} ${WRKSRC} \( -name '*.orig' -o -name '*.bak' \) -delete |
174 |
${RM} -rf ${WRKSRC}/contrib/sb-cover/test-output |
190 |
@(cd ${WRKSRC} && ${SETENV} CC="${CC}" ${SH} make.sh ${MAKE_SH_ARGS}) |
175 |
${REINPLACE_CMD} -E -e \ |
191 |
@${RM} -rf ${WRKSRC}/contrib/sb-cover/test-output |
|
|
192 |
@${REINPLACE_CMD} -E -e \ |
176 |
's|\$$Date\$$|'"`${SETENV} LANG=C /bin/date '+%B %d, %Y'`|g" \ |
193 |
's|\$$Date\$$|'"`${SETENV} LANG=C /bin/date '+%B %d, %Y'`|g" \ |
177 |
${WRKSRC}/doc/sbcl.1 |
194 |
${WRKSRC}/doc/sbcl.1 |
178 |
|
195 |
|
179 |
do-install: |
196 |
do-install: |
180 |
${MKDIR} ${STAGEDIR}${SBCL_HOME}/contrib \ |
197 |
${MKDIR} ${STAGEDIR}${SBCL_HOME}/ |
181 |
${STAGEDIR}${SBCL_HOME}/site-systems |
198 |
${INSTALL_PROGRAM} ${WRKSRC}/src/runtime/sbcl ${STAGEDIR}${PREFIX}/bin/ |
182 |
${INSTALL_PROGRAM} ${WRKSRC}/src/runtime/sbcl ${STAGEDIR}${PREFIX}/bin |
199 |
${INSTALL_DATA} ${WRKSRC}/output/sbcl_core ${STAGEDIR}${SBCL_HOME}/ |
183 |
${INSTALL_DATA} ${WRKSRC}/output/sbcl_core ${STAGEDIR}${SBCL_HOME} |
200 |
.for MOD in ${CONTRIB_MODULES} |
184 |
${INSTALL_DATA} ${WRKSRC}/obj/sbcl-home/contrib/*.fasl \ |
|
|
185 |
${STAGEDIR}${SBCL_HOME}/contrib/ |
186 |
${INSTALL_DATA} ${WRKSRC}/obj/sbcl-home/contrib/*.asd \ |
187 |
${STAGEDIR}${SBCL_HOME}/contrib/ |
188 |
.for MOD in ${CONMODULES} |
189 |
${MKDIR} ${STAGEDIR}${SBCL_HOME}/${MOD} |
201 |
${MKDIR} ${STAGEDIR}${SBCL_HOME}/${MOD} |
190 |
- ${INSTALL_DATA} ${WRKSRC}/contrib/${MOD}/*.lisp \ |
202 |
(if test -f ${WRKSRC}/contrib/${MOD}/${MOD}.lisp; then ${INSTALL_DATA} \ |
191 |
${STAGEDIR}${SBCL_HOME}/${MOD} |
203 |
${WRKSRC}/contrib/${MOD}/*.lisp ${STAGEDIR}${SBCL_HOME}/${MOD}/; fi) |
192 |
- ${INSTALL_DATA} ${WRKSRC}/contrib/${MOD}/*.fasl \ |
204 |
(if test -f ${WRKSRC}/contrib/${MOD}/${MOD}.fasl; then ${INSTALL_DATA} \ |
193 |
${STAGEDIR}${SBCL_HOME}/${MOD} |
205 |
${WRKSRC}/contrib/${MOD}/*.fasl ${STAGEDIR}${SBCL_HOME}/${MOD}/; fi) |
194 |
- ${INSTALL_DATA} ${WRKSRC}/contrib/${MOD}/${MOD}.asd \ |
206 |
(if test -f ${WRKSRC}/contrib/${MOD}/${MOD}.asd; then ${INSTALL_DATA} \ |
195 |
${STAGEDIR}${SBCL_HOME}/${MOD} |
207 |
${WRKSRC}/contrib/${MOD}/${MOD}.asd ${STAGEDIR}${SBCL_HOME}/${MOD}/; fi) |
196 |
.endfor |
208 |
.endfor |
197 |
.if ${PORT_OPTIONS:MDOCS} |
209 |
.if ${PORT_OPTIONS:MDOCS} |
198 |
${MKDIR} ${STAGEDIR}${DOCSDIR}/ |
210 |
${MKDIR} ${STAGEDIR}${DOCSDIR}/ |
199 |
${INSTALL_DATA} ${MANUALS:S,^, ${WRKSRC}/doc/manual/,g} \ |
211 |
${INSTALL_DATA} ${MANUALS:S,^, ${WRKSRC}/doc/manual/,g} ${STAGEDIR}${DOCSDIR}/ |
200 |
${STAGEDIR}${DOCSDIR}/ |
|
|
201 |
${INSTALL_DATA} ${TEXTDOCS:S,^,${WRKSRC}/,g} ${STAGEDIR}${DOCSDIR}/ |
212 |
${INSTALL_DATA} ${TEXTDOCS:S,^,${WRKSRC}/,g} ${STAGEDIR}${DOCSDIR}/ |
202 |
${MKDIR} ${MODULESDOCS:C,/[^/]+$,,g:u:S,^,${STAGEDIR}${DOCSDIR}/,g} |
213 |
${MKDIR} ${MODULESDOCS:C,/[^/]+$,,g:u:S,^,${STAGEDIR}${DOCSDIR}/,g} |
203 |
. for MODDOC in ${MODULESDOCS} |
214 |
. for MODDOC in ${MODULESDOCS} |
204 |
${INSTALL_DATA} ${WRKSRC}/contrib/${MODDOC} \ |
215 |
${INSTALL_DATA} ${WRKSRC}/contrib/${MODDOC} ${STAGEDIR}${DOCSDIR}/${MODDOC} |
205 |
${STAGEDIR}${DOCSDIR}/${MODDOC} |
|
|
206 |
. endfor |
216 |
. endfor |
207 |
.endif |
217 |
.endif |
208 |
${INSTALL_MAN} ${WRKSRC}/doc/sbcl.1 ${STAGEDIR}${MAN1PREFIX}/man/man1 |
218 |
${INSTALL_MAN} ${WRKSRC}/doc/sbcl.1 ${STAGEDIR}${MAN1PREFIX}/man/man1 |
|
|
219 |
${MKDIR} ${STAGEDIR}${SBCL_HOME}/site-systems |
220 |
@${TOUCH} ${STAGEDIR}${SBCL_HOME}/site-systems/.keep_me |
209 |
|
221 |
|
210 |
check regression-test test: build |
222 |
check regression-test test: build |
211 |
(cd ${WRKSRC}/tests && ${SETENV} CC="${CC}" ${SH} run-tests.sh) |
223 |
(cd ${WRKSRC}/tests && ${SETENV} CC="${CC}" ${SH} run-tests.sh) |