Lines 2-8
Link Here
|
2 |
# $FreeBSD$ |
2 |
# $FreeBSD$ |
3 |
|
3 |
|
4 |
PORTNAME= smlnj |
4 |
PORTNAME= smlnj |
5 |
PORTVERSION= 110.71 |
5 |
PORTVERSION= 110.76 |
6 |
CATEGORIES= lang |
6 |
CATEGORIES= lang |
7 |
MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ \ |
7 |
MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ \ |
8 |
ftp://mirror.free.de/http/smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ |
8 |
ftp://mirror.free.de/http/smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ |
Lines 12-61
Link Here
|
12 |
EXTRACT_ONLY= config.tgz |
12 |
EXTRACT_ONLY= config.tgz |
13 |
|
13 |
|
14 |
MAINTAINER= joemann@beefree.free.de |
14 |
MAINTAINER= joemann@beefree.free.de |
15 |
COMMENT= Popular functional language from Bell Labs |
15 |
COMMENT= Compiler and tools for Standard ML (SML '97) |
16 |
|
16 |
|
17 |
BROKEN= Dysfunctional |
|
|
18 |
|
19 |
NO_WRKSUBDIR= yes |
17 |
NO_WRKSUBDIR= yes |
20 |
USES= gmake |
|
|
21 |
|
18 |
|
22 |
ONLY_FOR_ARCHS= i386 |
|
|
23 |
|
24 |
OPTIONS_DEFINE= EVERYTHING RECOMPILE POSITION64 |
25 |
EVERYTHING_DESC= install everything from the SML/NJ distribution |
26 |
RECOMPILE_DESC= recompile the SML compiler - implies EVERYTHING |
27 |
POSITION64_DESC= use 64bit fi""le positions - implies RECOMPILE |
28 |
|
29 |
SUB_FILES= pkg-install |
19 |
SUB_FILES= pkg-install |
30 |
SUB_LIST= EXEBINDIR=${MLBINRELATIVE} EXENAMES="${MLEXE}" |
20 |
SUB_LIST= EXEBINDIR=${MLBINRELATIVE} EXENAMES="${MLEXE}" |
31 |
PKGDEINSTALL= ${PKGINSTALL} |
21 |
PKGDEINSTALL= ${PKGINSTALL} |
32 |
|
22 |
|
33 |
NO_STAGE= yes |
23 |
# Calm portlint |
|
|
24 |
CALM= |
25 |
|
26 |
OPTIONS_RADIO= RG1 |
27 |
OPTIONS_RADIO_RG1= EVERYTHING RECOMPILE POSITION64 |
28 |
OPTIONS_EXCLUDE_amd64= RECOMPILE POSITION64 |
29 |
EVERYTHING_DESC= install${CALM} everything from the SML/NJ distribution |
30 |
RECOMPILE_DESC= recompile the SML compiler - implies EVERYTHING |
31 |
POSITION64_DESC= use 64bit file${CALM} positions - implies RECOMPILE |
32 |
|
34 |
.include <bsd.port.pre.mk> |
33 |
.include <bsd.port.pre.mk> |
35 |
|
34 |
|
36 |
.if (${ARCH} == "i386") |
35 |
# Recompiling the compiler currently fails on amd64 |
|
|
36 |
.if ${ARCH} == "i386" |
37 |
ML_RECOMPILE_OPTIONS= RECOMPILE POSITION64 |
38 |
.endif |
39 |
|
40 |
.if (${ARCH} == "amd64") && (${OSVERSION} >= 1000029) |
41 |
ONLY_FOR_ARCHS= i386 amd64 |
42 |
.elif (${ARCH} == "amd64") && (${OSVERSION} >= 800000) |
43 |
ONLY_FOR_ARCHS= i386 amd64 |
44 |
# Compilation of the i386 runtime source on older amd64 systems requires |
45 |
# i386 system headers from the respective FreeBSD Version, taken from |
46 |
# stable/N/sys/i386/include, r196045 (N=8) and r225736 (N=9). |
47 |
EXTRA_DEFS+= -DINCLUDE_FREEBSD_I386_SIGNAL=\\\"freebsd-8-i386-signal.h\\\" |
48 |
EXTRA_DEFS+= -DINCLUDE_FREEBSD_I386_IEEEFP=\\\"freebsd-8-i386-ieeefp.h\\\" |
49 |
.if (${OSVERSION} < 900000) |
50 |
EXTRA_DEFS+= -DINCLUDE_FREEBSD_I386__TYPES=\\\"freebsd-8-i386-_types.h\\\" |
51 |
EXTRA_DEFS+= -DINCLUDE_FREEBSD_I386_ENDIAN=\\\"freebsd-8-i386-endian.h\\\" |
52 |
.else |
53 |
EXTRA_DEFS+= -DINCLUDE_FREEBSD_I386__TYPES=\\\"freebsd-9-i386-_types.h\\\" |
54 |
EXTRA_DEFS+= -DINCLUDE_FREEBSD_I386_ENDIAN=\\\"freebsd-9-i386-endian.h\\\" |
55 |
.endif |
56 |
.else |
57 |
ONLY_FOR_ARCHS= i386 |
58 |
.endif |
59 |
|
60 |
.if (${ARCH} == "amd64") |
61 |
CFLAGS+= -m32 |
62 |
AS?= as |
63 |
AS+= --32 |
64 |
.endif |
65 |
.if (${ARCH} == "i386" || ${ARCH} == "amd64") |
37 |
MLARCH= x86 |
66 |
MLARCH= x86 |
38 |
DISTFILES+= boot.x86-unix.tgz |
67 |
DISTFILES+= boot.x86-unix.tgz |
39 |
.endif |
68 |
.endif |
40 |
DISTFILES+= MLRISC.tgz ckit.tgz cml.tgz heap2asm.tgz ml-lpt.tgz \ |
69 |
DISTFILES+= MLRISC.tgz ckit.tgz cml.tgz heap2asm.tgz ml-burg.tgz \ |
41 |
ml-lex.tgz ml-yacc.tgz smlnj-lib.tgz trace-debug-profile.tgz |
70 |
ml-lpt.tgz ml-lex.tgz ml-yacc.tgz nlffi.tgz \ |
|
|
71 |
smlnj-lib.tgz trace-debug-profile.tgz |
42 |
|
72 |
|
43 |
PLIST_SUB= MLARCH=${MLARCH} |
73 |
PLIST_SUB= MLARCH=${MLARCH} |
44 |
|
74 |
|
45 |
.if ${PORT_OPTIONS:MPOSITION64} |
75 |
.if ${PORT_OPTIONS:MPOSITION64} || defined(ML_POSITION64) |
46 |
WITH_RECOMPILE?= ${WITH_POSITION64} |
76 |
ML_POSITION64?= ${PORT_OPTIONS:MPOSITION64} |
|
|
77 |
ML_RECOMPILE?= ${ML_POSITION64} |
78 |
ML_EVERYTHING?= ${ML_POSITION64} |
47 |
CMB_COMMAND= '(\#set o CMB.symval) "USE_64_BIT_POSITIONS" (SOME 1);' |
79 |
CMB_COMMAND= '(\#set o CMB.symval) "USE_64_BIT_POSITIONS" (SOME 1);' |
48 |
.else |
80 |
.else |
49 |
CMB_COMMAND= |
81 |
CMB_COMMAND= |
50 |
.endif |
82 |
.endif |
51 |
|
83 |
|
52 |
.if ${PORT_OPTIONS:MRECOMPILE} |
84 |
.if ${PORT_OPTIONS:MRECOMPILE} || defined(ML_RECOMPILE) |
53 |
WITH_EVERYTHING?= ${WITH_RECOMPILE} |
85 |
ML_RECOMPILE?= ${PORT_OPTIONS:MRECOMPILE} |
|
|
86 |
ML_EVERYTHING?= ${ML_RECOMPILE} |
54 |
.endif |
87 |
.endif |
55 |
|
88 |
|
56 |
.if ${PORT_OPTIONS:MEVERYTHING} |
89 |
.if ${PORT_OPTIONS:MEVERYTHING} || defined(ML_EVERYTHING) |
57 |
DISTFILES+= cm.tgz compiler.tgz eXene.tgz ml-burg.tgz \ |
90 |
ML_EVERYTHING?= ${PORT_OPTIONS:MEVERYTHING} |
58 |
nlffi.tgz pgraph.tgz smlnj-c.tgz system.tgz |
91 |
DISTFILES+= cm.tgz compiler.tgz eXene.tgz \ |
|
|
92 |
pgraph.tgz smlnj-c.tgz system.tgz |
93 |
PLIST_SUB+= EVERYTHING="" |
94 |
.else |
95 |
PLIST_SUB+= EVERYTHING="@comment " |
59 |
.endif |
96 |
.endif |
60 |
|
97 |
|
61 |
MLROOTRELATIVE= smlnj |
98 |
MLROOTRELATIVE= smlnj |
Lines 63-106
Link Here
|
63 |
MLBINRELATIVE= ${MLROOTRELATIVE}/bin |
100 |
MLBINRELATIVE= ${MLROOTRELATIVE}/bin |
64 |
MLBIN= ${MLROOT}/bin |
101 |
MLBIN= ${MLROOT}/bin |
65 |
MLLIB= ${MLROOT}/lib |
102 |
MLLIB= ${MLROOT}/lib |
66 |
MLSTDSRCDIRS= cml heap2asm ml-lex ml-lpt ml-yacc smlnj-lib |
103 |
MLSTDSRCDIRS= cml heap2asm ml-burg ml-lex ml-lpt ml-yacc nlffi smlnj-lib |
67 |
MLSRCDIRS= base ${MLSTDSRCDIRS} \ |
104 |
MLSRCDIRS= base ${MLSTDSRCDIRS} \ |
68 |
ckit eXene ml-burg nlffi pgraph smlnj-c |
105 |
ckit eXene pgraph smlnj-c |
69 |
MLSRCS= |
106 |
MLSRCS= |
70 |
.for srcdir in ${MLSRCDIRS} |
107 |
.for srcdir in ${MLSRCDIRS} |
71 |
MLSRCS+= ${MLROOT}/${srcdir} |
108 |
MLSRCS+= ${MLROOT}/${srcdir} |
72 |
.endfor |
109 |
.endfor |
73 |
MLTARGETS= heap2asm |
110 |
MLTARGETS= heap2asm |
74 |
MLEXE= heap2exec ml-antlr ml-build ml-lex ml-makedepend \ |
111 |
MLEXE= heap2exec ml-antlr ml-build ml-burg ml-lex ml-makedepend \ |
75 |
ml-ulex ml-yacc sml |
112 |
ml-nlffigen ml-ulex ml-yacc sml |
76 |
.if ${PORT_OPTIONS:MEVERYTHING} |
113 |
.if defined(ML_EVERYTHING) |
77 |
MLTARGETS+= eXene ml-burg ml-nlffi-lib ml-nlffigen \ |
114 |
MLTARGETS+= eXene mlrisc-tools nowhere pgraph-util src-smlnj |
78 |
mlrisc-tools nowhere pgraph-util src-smlnj |
115 |
MLEXE+= nowhere |
79 |
MLEXE+= ml-burg ml-nlffigen nowhere |
|
|
80 |
PLIST= ${WRKDIR}/.PLIST |
116 |
PLIST= ${WRKDIR}/.PLIST |
81 |
MLRUNTIMEPLIST= ${WRKDIR}/.PLIST-runtime |
117 |
MLRUNTIMEPLIST= ${WRKDIR}/.PLIST-runtime |
82 |
MLSRCPLIST= ${WRKDIR}/.PLIST-src |
118 |
MLSRCPLIST= ${WRKDIR}/.PLIST-src |
83 |
MLPLISTFILES= ${.CURDIR}/pkg-plist ${FILESDIR}/plist-everything \ |
119 |
MLPLISTFILES= ${.CURDIR}/pkg-plist ${MLRUNTIMEPLIST} ${MLSRCPLIST} |
84 |
${MLRUNTIMEPLIST} ${MLSRCPLIST} |
|
|
85 |
.endif |
120 |
.endif |
86 |
|
121 |
|
87 |
pre-fetch: |
122 |
pre-fetch: |
88 |
@${ECHO} |
123 |
@${ECHO} |
89 |
.if ! ${PORT_OPTIONS:MEVERYTHING} |
124 |
.if ! defined(ML_EVERYTHING) |
90 |
@${ECHO} 'Use make WITH_EVERYTHING=yes to also build/install' |
125 |
@${ECHO} 'Use make ML_EVERYTHING=yes to also build/install' |
91 |
@${ECHO} ' eXene (X Windows toolkit),' |
126 |
@${ECHO} ' eXene (X Windows toolkit),' |
92 |
@${ECHO} ' ml-burg (tree transformer),' |
|
|
93 |
@${ECHO} ' ml-nlffi (foreign function interface to C code),' |
94 |
@${ECHO} ' nowhere (preprocessor for conditional patterns),' |
127 |
@${ECHO} ' nowhere (preprocessor for conditional patterns),' |
95 |
@${ECHO} ' various libraries, and all the sources.' |
128 |
@${ECHO} ' various libraries, and all the sources.' |
96 |
.endif |
129 |
.endif |
97 |
.if ! ${PORT_OPTIONS:MRECOMPILE} |
130 |
.if !empty(ML_RECOMPILE_OPTIONS:MRECOMPILE) && !defined(ML_RECOMPILE) |
98 |
@${ECHO} 'Use make WITH_RECOMPILE=yes to recompile the compiler.' |
131 |
@${ECHO} 'Use make ML_RECOMPILE=yes to recompile the compiler.' |
99 |
@${ECHO} ' This implies WITH_EVERYTHING.' |
132 |
@${ECHO} ' This implies ML_EVERYTHING.' |
100 |
.endif |
133 |
.endif |
101 |
.if ! ${PORT_OPTIONS:MPOSITION64} |
134 |
.if !empty(ML_RECOMPILE_OPTIONS:MPOSITION64) && !defined(ML_POSITION64) |
102 |
@${ECHO} 'Use make WITH_POSITION64=yes to use 64bit file positions.' |
135 |
@${ECHO} 'Use make ML_POSITION64=yes to use 64bit file positions.' |
103 |
@${ECHO} ' This implies WITH_RECOMPILE.' |
136 |
@${ECHO} ' This implies ML_RECOMPILE.' |
104 |
.endif |
137 |
.endif |
105 |
@${ECHO} |
138 |
@${ECHO} |
106 |
|
139 |
|
Lines 109-115
Link Here
|
109 |
post-extract: |
142 |
post-extract: |
110 |
cd ${WRKDIR} && ${LN} -sf ${_DISTDIR}/* . |
143 |
cd ${WRKDIR} && ${LN} -sf ${_DISTDIR}/* . |
111 |
|
144 |
|
112 |
# Configuring is done by uncommenting the appropriate #request xxx |
145 |
# Configuring is done by uncommenting the appropriate #request |
113 |
# lines of config/targets. Dependency details are handled by |
146 |
# lines of config/targets. Dependency details are handled by |
114 |
# base/system/smlnj/installer using config/dependencies and |
147 |
# base/system/smlnj/installer using config/dependencies and |
115 |
# config/actions. |
148 |
# config/actions. |
Lines 125-131
Link Here
|
125 |
# Recompilation requires ml-lex and ml-yacc. All requested targets |
158 |
# Recompilation requires ml-lex and ml-yacc. All requested targets |
126 |
# will be built later using the recompiled core system after |
159 |
# will be built later using the recompiled core system after |
127 |
# removing targets.customized. See "do-build" below. |
160 |
# removing targets.customized. See "do-build" below. |
128 |
.if ${PORT_OPTIONS:MRECOMPILE} |
161 |
.if defined(ML_RECOMPILE) |
129 |
( ${ECHO_CMD} "request ml-yacc" && \ |
162 |
( ${ECHO_CMD} "request ml-yacc" && \ |
130 |
${ECHO_CMD} "request ml-lex" && \ |
163 |
${ECHO_CMD} "request ml-lex" && \ |
131 |
${ECHO_CMD} "request ml-lex-mllex-tool" && \ |
164 |
${ECHO_CMD} "request ml-lex-mllex-tool" && \ |
Lines 138-152
Link Here
|
138 |
# a subsequent make install. |
171 |
# a subsequent make install. |
139 |
# See base/system/README for information on recompiling the compiler. |
172 |
# See base/system/README for information on recompiling the compiler. |
140 |
|
173 |
|
141 |
.if ${PORT_OPTIONS:MRECOMPILE} |
174 |
.if defined(ML_RECOMPILE) |
142 |
RECOMPILEDIR= base/system |
175 |
RECOMPILEDIR= base/system |
143 |
.else |
176 |
.else |
144 |
RECOMPILEDIR= |
177 |
RECOMPILEDIR= |
145 |
.endif |
178 |
.endif |
146 |
|
179 |
|
|
|
180 |
.if (${ARCH} == "amd64") && (${OSVERSION} >= 800000) && (${OSVERSION} < 1000029) |
147 |
MLRUNTIMEPATCHES_CMD= cd ${FILESDIR} && \ |
181 |
MLRUNTIMEPATCHES_CMD= cd ${FILESDIR} && \ |
|
|
182 |
( ${LS} do-patch-base_runtime_* extra-patch-base_runtime_* 2>&- || \ |
183 |
${TRUE} ) |
184 |
.else |
185 |
MLRUNTIMEPATCHES_CMD= cd ${FILESDIR} && \ |
148 |
( ${LS} do-patch-base_runtime_* 2>&- || \ |
186 |
( ${LS} do-patch-base_runtime_* 2>&- || \ |
149 |
${TRUE} ) |
187 |
${TRUE} ) |
|
|
188 |
.endif |
150 |
MLSTANDARDPATCHES_CMD= cd ${FILESDIR} && \ |
189 |
MLSTANDARDPATCHES_CMD= cd ${FILESDIR} && \ |
151 |
( for srcdir in ${MLSTDSRCDIRS} ; \ |
190 |
( for srcdir in ${MLSTDSRCDIRS} ; \ |
152 |
do ${LS} do-patch-$${srcdir}_* 2>&- ; \ |
191 |
do ${LS} do-patch-$${srcdir}_* 2>&- ; \ |
Lines 156-162
Link Here
|
156 |
do if ${LS} do-patch-$${srcdir}_* 1>&- 2>&- ; \ |
195 |
do if ${LS} do-patch-$${srcdir}_* 1>&- 2>&- ; \ |
157 |
then ${ECHO_CMD} -n $${srcdir} " " ; break ; fi ; \ |
196 |
then ${ECHO_CMD} -n $${srcdir} " " ; break ; fi ; \ |
158 |
done ) || ${TRUE} |
197 |
done ) || ${TRUE} |
159 |
.if ${PORT_OPTIONS:MEVERYTHING} |
198 |
.if defined(ML_EVERYTHING) |
160 |
MLSOURCEPATCHES_CMD= cd ${FILESDIR} && \ |
199 |
MLSOURCEPATCHES_CMD= cd ${FILESDIR} && \ |
161 |
( ${LS} do-patch-* 2>&- || \ |
200 |
( ${LS} do-patch-* 2>&- || \ |
162 |
${TRUE} ) |
201 |
${TRUE} ) |
Lines 172-179
Link Here
|
172 |
MLSTANDARDPATCHES=`${MLSTANDARDPATCHES_CMD}` \ |
211 |
MLSTANDARDPATCHES=`${MLSTANDARDPATCHES_CMD}` \ |
173 |
MLSTANDARDPATCHDIRS=`${MLSTANDARDPATCHDIRS_CMD}` \ |
212 |
MLSTANDARDPATCHDIRS=`${MLSTANDARDPATCHDIRS_CMD}` \ |
174 |
MLSOURCEPATCHES=`${MLSOURCEPATCHES_CMD}` \ |
213 |
MLSOURCEPATCHES=`${MLSOURCEPATCHES_CMD}` \ |
|
|
214 |
CFLAGS='${CFLAGS}' AS='${AS}' EXTRA_DEFS='${EXTRA_DEFS}' \ |
175 |
./config/install.sh |
215 |
./config/install.sh |
176 |
.if ${PORT_OPTIONS:MRECOMPILE} |
216 |
.if defined(ML_RECOMPILE) |
177 |
-${RM} ${WRKDIR}/config/targets.customized |
217 |
-${RM} ${WRKDIR}/config/targets.customized |
178 |
@${ECHO} '(* Recompiling the core system: *)' |
218 |
@${ECHO} '(* Recompiling the core system: *)' |
179 |
cd ${WRKDIR}/${RECOMPILEDIR} && ( \ |
219 |
cd ${WRKDIR}/${RECOMPILEDIR} && ( \ |
Lines 196-201
Link Here
|
196 |
cd ${WRKDIR} && unset PWD && \ |
236 |
cd ${WRKDIR} && unset PWD && \ |
197 |
FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \ |
237 |
FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \ |
198 |
MLNORUNTIMECLEAN=yes RECOMPILEDIR="${RECOMPILEDIR}" \ |
238 |
MLNORUNTIMECLEAN=yes RECOMPILEDIR="${RECOMPILEDIR}" \ |
|
|
239 |
CFLAGS='${CFLAGS}' AS='${AS}' EXTRA_DEFS='${EXTRA_DEFS}' \ |
199 |
./config/install.sh |
240 |
./config/install.sh |
200 |
.endif |
241 |
.endif |
201 |
|
242 |
|
Lines 202-210
Link Here
|
202 |
# Nowadays PLIST has to be computed before installation. We do it in |
243 |
# Nowadays PLIST has to be computed before installation. We do it in |
203 |
# "pre-install" because source extraction happens during "build". |
244 |
# "pre-install" because source extraction happens during "build". |
204 |
|
245 |
|
205 |
.if ${PORT_OPTIONS:MEVERYTHING} |
246 |
.if defined(ML_EVERYTHING) |
206 |
MLNOINSTALL= .cm |
247 |
MLNOINSTALL= .cm |
207 |
.if ${PORT_OPTIONS:MRECOMPILE} |
248 |
.if defined(ML_RECOMPILE) |
208 |
MLNOINSTALL+= sml.bin.${MLARCH}-unix sml.boot.${MLARCH}-unix \ |
249 |
MLNOINSTALL+= sml.bin.${MLARCH}-unix sml.boot.${MLARCH}-unix \ |
209 |
sml.lib sml.${MLARCH}-bsd |
250 |
sml.lib sml.${MLARCH}-bsd |
210 |
.endif |
251 |
.endif |
Lines 215-251
Link Here
|
215 |
MLPATCHPATHREGEX= -E -e 's%(^|[^_])_([^_]|$$)%\1/\2%g' \ |
256 |
MLPATCHPATHREGEX= -E -e 's%(^|[^_])_([^_]|$$)%\1/\2%g' \ |
216 |
-e 's%(^|[^_])__([^_]|$$)%\1_\2%g' \ |
257 |
-e 's%(^|[^_])__([^_]|$$)%\1_\2%g' \ |
217 |
-e 's%(^|[^_])___([^_]|$$)%\1/_\2%g' |
258 |
-e 's%(^|[^_])___([^_]|$$)%\1/_\2%g' |
|
|
259 |
.endif |
218 |
|
260 |
|
219 |
pre-install: |
261 |
pre-install: |
|
|
262 |
.if defined(ML_EVERYTHING) |
220 |
@${ECHO} -n '(* Computing package list ...' |
263 |
@${ECHO} -n '(* Computing package list ...' |
221 |
@${TAR} -tzf ${WRKDIR}/runtime.tgz | \ |
264 |
@${TAR} -tzf ${WRKDIR}/runtime.tgz | \ |
222 |
${SED} -E -e 's%^(.*[^/])$$%${MLROOTRELATIVE}/base/\1%' \ |
265 |
${SED} -E -e 's%^(.*[^/])$$%${MLROOTRELATIVE}/base/\1%' \ |
223 |
-e 's%^(.*)/$$%@dirrm\ ${MLROOTRELATIVE}/base/\1%' \ |
266 |
-e 's%^(.*)/$$%@dirrm\ ${MLROOTRELATIVE}/base/\1%' \ |
224 |
> ${MLRUNTIMEPLIST} |
267 |
> ${MLRUNTIMEPLIST} |
225 |
`${MLRUNTIMEPATCHES_CMD}` | \ |
268 |
@${MLRUNTIMEPATCHES_CMD} | \ |
226 |
${SED} ${MLPATCHPATHREGEX} | \ |
269 |
${SED} ${MLPATCHPATHREGEX} | \ |
227 |
${SED} -E -e 's%^do-patch-(base/.*)%${MLROOTRELATIVE}/\1.orig%' \ |
270 |
${SED} -E -e 's%^(do|extra)-patch-(base/.*)%${MLROOTRELATIVE}/\2%' \ |
|
|
271 |
> ${MLRUNTIMEPLIST}.patched |
272 |
-@${GREP} -F -v -f ${MLRUNTIMEPLIST} ${MLRUNTIMEPLIST}.patched \ |
273 |
> ${MLRUNTIMEPLIST}.patchednew |
274 |
@${CAT} ${MLRUNTIMEPLIST}.patchednew >> ${MLRUNTIMEPLIST} |
275 |
@${MLRUNTIMEPATCHES_CMD} | \ |
276 |
${SED} ${MLPATCHPATHREGEX} | \ |
277 |
${SED} -E -e 's%^(do|extra)-patch-(base/.*)%${MLROOTRELATIVE}/\2.orig%' \ |
228 |
>> ${MLRUNTIMEPLIST} |
278 |
>> ${MLRUNTIMEPLIST} |
229 |
@cd "${WRKDIR}" && ( \ |
279 |
@cd "${WRKDIR}" && ( \ |
230 |
( ${FIND} -s -d ${MLSRCDIRS} \! -type d | \ |
280 |
( ${FIND} -s -d ${MLSRCDIRS} \! -type d | \ |
231 |
${AWK} '{ print "${MLROOTRELATIVE}/" $$0 }' ) ; \ |
281 |
${AWK} '{ print "${MLROOTRELATIVE}/" $$0 }' ) ; \ |
232 |
( ${FIND} -s -d ${MLSRCDIRS} -type d -empty | \ |
282 |
( ${FIND} -s -d ${MLSRCDIRS} -type d -empty | \ |
233 |
${AWK} '{ print "@exec mk""dir -p %D/${MLROOTRELATIVE}/" $$0 }' ) ; \ |
283 |
${AWK} '{ print "@exec mkdir${CALM} -p %D/${MLROOTRELATIVE}/" $$0 }' ) ; \ |
234 |
( ${FIND} -s -d ${MLSRCDIRS} -type d | \ |
284 |
( ${FIND} -s -d ${MLSRCDIRS} -type d | \ |
235 |
${AWK} '{ print "@dirrm ${MLROOTRELATIVE}/" $$0 }' ) ) | \ |
285 |
${AWK} '{ print "@dirrm ${MLROOTRELATIVE}/" $$0 }' ) ) | \ |
236 |
${EGREP} -v ${MLSRCEXCLUDEREGEX} > ${MLSRCPLIST} |
286 |
${EGREP} -v ${MLSRCEXCLUDEREGEX} > ${MLSRCPLIST} |
237 |
@${GREP} -h "^[^@]" ${MLPLISTFILES} | ${SORT} -u > ${PLIST} |
287 |
@${SED} -e 's/^%%EVERYTHING%%//' ${MLPLISTFILES} | \ |
238 |
@${GREP} -h "^@exec mk""dir" ${MLPLISTFILES} | ${SORT} -u >> ${PLIST} |
288 |
${GREP} -h -v "^@dirrm" | ${SORT} -u > ${PLIST} |
239 |
@${GREP} -h "^@dirrm" ${MLPLISTFILES} | ${SORT} -r -u >> ${PLIST} |
289 |
@${GREP} -h "^@exec mkdir${CALM}" ${MLPLISTFILES} | ${SORT} -u >> ${PLIST} |
|
|
290 |
@${SED} -e 's/^%%EVERYTHING%%//' ${MLPLISTFILES} | \ |
291 |
${GREP} -h "^@dirrm" | ${SORT} -r -u >> ${PLIST} |
240 |
@${ECHO} ' done. *)' |
292 |
@${ECHO} ' done. *)' |
241 |
.endif |
293 |
.endif |
|
|
294 |
# ${PKGINSTALL} contains multiexec-wrapper, which is used to select |
295 |
# between executables of the same name that have been installed by |
296 |
# different packages (like smlnj and smlnj-devel). The source of |
297 |
# multiexec-wrapper is extracted from ${PKGINSTALL}, and inserted |
298 |
# into ${PKGINSTALL} in compressed and encoded form. So it is still |
299 |
# available when being installed from a binary package, even if |
300 |
# ${PKGINSTALL} is no file at that time (but only input to a shell). |
301 |
@${SED} -e '/^#%%PKG-INSTALL-START%%$$/,/^#%%PKG-INSTALL-END%%$$/d' \ |
302 |
${PKGINSTALL} > ${PKGINSTALL}.script |
303 |
@${GZIP_CMD} ${PKGINSTALL}.script |
304 |
@b64encode ${PKGINSTALL}.script.gz script.gz > ${PKGINSTALL}.script.gz.b64 |
305 |
@${SED} -n -e '1,/~EOF~.$$/p' ${PKGINSTALL} > ${PKGINSTALL}.pre |
306 |
@${SED} -n -e '/^~EOF~$$/,$$p' ${PKGINSTALL} > ${PKGINSTALL}.post |
307 |
@${CAT} ${PKGINSTALL}.pre ${PKGINSTALL}.script.gz.b64 ${PKGINSTALL}.post > ${PKGINSTALL}.full |
308 |
@${DIFF} -q ${PKGINSTALL} ${PKGINSTALL}.full >/dev/null || ${CP} ${PKGINSTALL}.full ${PKGINSTALL} |
242 |
|
309 |
|
243 |
# The install target installs the heaps and libraries to their final |
310 |
# The install target installs the heaps and libraries to their final |
244 |
# location in ${MLBIN} and ${MLLIB}. |
311 |
# location in ${MLBIN} and ${MLLIB}. |
245 |
# In case of recompilation, installml installs the sml heap and the |
312 |
# In case of recompilation, installml installs the sml heap and the |
246 |
# libraries built during compiler bootstrap to ${MLBIN} and ${MLLIB}. |
313 |
# libraries built during compiler bootstrap to ${MLBIN} and ${MLLIB}. |
|
|
314 |
# When staging CM_PATHCONFIG has to point to the final |
315 |
# ${MLLIB}/pathconfig (in ${PREFIX}) while building the compiler. |
247 |
|
316 |
|
248 |
.if ${PORT_OPTIONS:MEVERYTHING} |
317 |
.if defined(ML_EVERYTHING) |
249 |
MLSRCEXCLUDES= |
318 |
MLSRCEXCLUDES= |
250 |
.for excl in ${MLNOINSTALL} |
319 |
.for excl in ${MLNOINSTALL} |
251 |
MLSRCEXCLUDES+= --exclude "${excl}" |
320 |
MLSRCEXCLUDES+= --exclude "${excl}" |
Lines 253-263
Link Here
|
253 |
.endif |
322 |
.endif |
254 |
|
323 |
|
255 |
do-install: |
324 |
do-install: |
256 |
${MKDIR} "${MLROOT}" |
325 |
${MKDIR} "${STAGEDIR}${MLROOT}" |
257 |
.if ! ${PORT_OPTIONS:MRECOMPILE} |
326 |
.if ! defined(ML_RECOMPILE) |
258 |
cd ${WRKDIR} && unset PWD && \ |
327 |
cd ${WRKDIR} && unset PWD && \ |
259 |
FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \ |
328 |
FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \ |
260 |
INSTALLDIR="${MLROOT}" ./config/install.sh |
329 |
STAGEDIR="${STAGEDIR}" MLLIB="${MLLIB}" \ |
|
|
330 |
INSTALLDIR="${STAGEDIR}${MLROOT}" \ |
331 |
CFLAGS='${CFLAGS}' AS='${AS}' EXTRA_DEFS='${EXTRA_DEFS}' \ |
332 |
./config/install.sh |
261 |
.else |
333 |
.else |
262 |
@${ECHO} '(* Rebuilding the recompiled libs: *)' |
334 |
@${ECHO} '(* Rebuilding the recompiled libs: *)' |
263 |
cd ${WRKDIR}/${RECOMPILEDIR} && ( \ |
335 |
cd ${WRKDIR}/${RECOMPILEDIR} && ( \ |
Lines 271-296
Link Here
|
271 |
@${ECHO} '(* Installing into ${MLROOT}: *)' |
343 |
@${ECHO} '(* Installing into ${MLROOT}: *)' |
272 |
cd ${WRKDIR} && unset PWD && \ |
344 |
cd ${WRKDIR} && unset PWD && \ |
273 |
FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \ |
345 |
FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \ |
274 |
INSTALLDIR="${MLROOT}" RECOMPILEDIR="${RECOMPILEDIR}" \ |
346 |
STAGEDIR="${STAGEDIR}" MLLIB="${MLLIB}" \ |
|
|
347 |
INSTALLDIR="${STAGEDIR}${MLROOT}" RECOMPILEDIR="${RECOMPILEDIR}" \ |
348 |
CFLAGS='${CFLAGS}' AS='${AS}' EXTRA_DEFS='${EXTRA_DEFS}' \ |
275 |
./config/install.sh |
349 |
./config/install.sh |
276 |
.endif |
350 |
.endif |
277 |
MLARCHOPSYS=`${MLBIN}/.arch-n-opsys` && \ |
351 |
MLARCHOPSYS=`${STAGEDIR}${MLBIN}/.arch-n-opsys` && \ |
278 |
( eval $${MLARCHOPSYS} ; \ |
352 |
( eval $${MLARCHOPSYS} ; \ |
279 |
${STRIP_CMD} "${MLBIN}/.run/run.$${ARCH}-$${OPSYS}" ) |
353 |
${STRIP_CMD} "${STAGEDIR}${MLBIN}/.run/run.$${ARCH}-$${OPSYS}" ) |
280 |
@${CHOWN} -R ${BINOWN}:${BINGRP} "${MLBIN}" "${MLLIB}" |
354 |
.if defined(ML_EVERYTHING) |
281 |
.if ${PORT_OPTIONS:MEVERYTHING} |
|
|
282 |
@${ECHO} '(* Cleaning base/runtime: *)' |
355 |
@${ECHO} '(* Cleaning base/runtime: *)' |
283 |
cd ${WRKDIR}/base/runtime/objs && ${MAKE_CMD} clean |
356 |
cd ${WRKDIR}/base/runtime/objs && ${MAKE_CMD} clean |
284 |
@${ECHO} -n '(* Installing sources into ${MLROOT} ...' |
357 |
@${ECHO} -n '(* Installing sources into ${STAGEDIR}${MLROOT} ...' |
285 |
@cd ${WRKDIR} && ${TAR} -cf - ${MLSRCEXCLUDES} ${MLSRCDIRS} | \ |
358 |
@cd ${WRKDIR} && ${TAR} -cf - ${MLSRCEXCLUDES} ${MLSRCDIRS} | \ |
286 |
${TAR} -xf - -C "${MLROOT}" |
359 |
${TAR} -xf - -C "${STAGEDIR}${MLROOT}" |
287 |
@${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${MLSRCS} |
|
|
288 |
@${ECHO} ' done. *)' |
360 |
@${ECHO} ' done. *)' |
289 |
.endif |
361 |
.endif |
290 |
|
362 |
|
291 |
post-install: |
363 |
post-install: |
|
|
364 |
# Only execute ${PKGINSTALL} when installing to ${PREFIX}, |
365 |
# but not when staging. |
366 |
.ifmake install${CALM} |
292 |
PKG_PREFIX=${PREFIX} MULTIEXEC_WRAPPER_VERBOSE=yes \ |
367 |
PKG_PREFIX=${PREFIX} MULTIEXEC_WRAPPER_VERBOSE=yes \ |
293 |
${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL |
368 |
${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL |
|
|
369 |
.endif |
294 |
|
370 |
|
295 |
.ifndef MULTIEXEC_WRAPPER_VERBOSE |
371 |
.ifndef MULTIEXEC_WRAPPER_VERBOSE |
296 |
deinstall: |
372 |
deinstall: |
Lines 299-305
Link Here
|
299 |
.endif |
375 |
.endif |
300 |
|
376 |
|
301 |
# This target may be used by dependent ports to set SMLNJ_DEVEL_VERSION |
377 |
# This target may be used by dependent ports to set SMLNJ_DEVEL_VERSION |
302 |
# either to the currently installed sml-nj-devel package's version |
378 |
# either to the currently installed smlnj-devel package's version |
303 |
# or else to this port's version. SMLNJ_DEVEL_VERSION is an environment |
379 |
# or else to this port's version. SMLNJ_DEVEL_VERSION is an environment |
304 |
# variable used by multiexec-wrapper to select the executable |
380 |
# variable used by multiexec-wrapper to select the executable |
305 |
# from that smlnj-devel-* package matching SMLNJ_DEVEL_VERSION. |
381 |
# from that smlnj-devel-* package matching SMLNJ_DEVEL_VERSION. |