| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | # $NetBSD: Makefile,v 1.26 2016/04/14 22:10:06 dholland Exp $ | | 1 | # $NetBSD: Makefile,v 1.27 2016/07/03 19:08:22 dholland Exp $ |
2 | # | | 2 | # |
3 | | | 3 | |
4 | DISTNAME= boot.${BOX}-unix | | 4 | DISTNAME= boot.${BOX}-unix |
5 | PKGNAME= smlnj-${SML_VERSION} | | 5 | PKGNAME= smlnj-${SML_VERSION} |
6 | CATEGORIES= lang | | 6 | CATEGORIES= lang |
7 | MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/working/${SML_VERSION}/ | | 7 | MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/working/${SML_VERSION}/ |
8 | DISTFILES= MLRISC.tgz \ | | 8 | DISTFILES= MLRISC.tgz \ |
9 | boot.${BOX}-unix.tgz \ | | 9 | boot.${BOX}-unix.tgz \ |
10 | ckit.tgz \ | | 10 | ckit.tgz \ |
11 | cm.tgz \ | | 11 | cm.tgz \ |
12 | cml.tgz \ | | 12 | cml.tgz \ |
13 | compiler.tgz \ | | 13 | compiler.tgz \ |
14 | config.tgz \ | | 14 | config.tgz \ |
| @@ -37,42 +37,57 @@ WRKSRC= ${WRKDIR} | | | @@ -37,42 +37,57 @@ WRKSRC= ${WRKDIR} |
37 | DIST_SUBDIR= smlnj-${SML_VERSION} | | 37 | DIST_SUBDIR= smlnj-${SML_VERSION} |
38 | USE_TOOLS+= gmake pax | | 38 | USE_TOOLS+= gmake pax |
39 | | | 39 | |
40 | # previous versions of the package had an additional '-' | | 40 | # previous versions of the package had an additional '-' |
41 | CONFLICTS= sml-nj-[0-9]* | | 41 | CONFLICTS= sml-nj-[0-9]* |
42 | | | 42 | |
43 | SML_BASE= ${PREFIX}/lib/smlnj | | 43 | SML_BASE= ${PREFIX}/lib/smlnj |
44 | SML_LIBDIR= ${SML_BASE}/lib | | 44 | SML_LIBDIR= ${SML_BASE}/lib |
45 | SML_BINDIR= ${SML_BASE}/bin | | 45 | SML_BINDIR= ${SML_BASE}/bin |
46 | SML_SCRIPTS= _link-sml _run-sml _ml-build _ml-makedepend | | 46 | SML_SCRIPTS= _link-sml _run-sml _ml-build _ml-makedepend |
47 | | | 47 | |
48 | .include "../../lang/smlnj/Makefile.common" | | 48 | .include "../../lang/smlnj/Makefile.common" |
49 | | | 49 | |
50 | # create parent directory for the runtime system | | 50 | # |
| | | 51 | # For smlnj reasons the runtime system needs to be unpacked twice, once |
| | | 52 | # in work/src and once in work/base. |
| | | 53 | # |
| | | 54 | # As of 20160624, instead of inconsistently patching one copy or the |
| | | 55 | # other and hoping, or patching both and duplicating all the patches, |
| | | 56 | # we'll patch only work/src, and then *after* patching clone work/src |
| | | 57 | # into work/base. |
| | | 58 | # |
| | | 59 | |
| | | 60 | # create parent directories for the runtime system |
51 | pre-extract: | | 61 | pre-extract: |
52 | ${MKDIR} ${WRKDIR}/src || ${TRUE} | | 62 | ${MKDIR} ${WRKDIR}/src || ${TRUE} |
| | | 63 | ${MKDIR} ${WRKDIR}/base || ${TRUE} |
53 | | | 64 | |
54 | # make it easier to patch the runtime system | | 65 | # make it easier to patch the runtime system |
55 | do-extract: | | 66 | do-extract: |
56 | ${RUN} extract_file="${_DISTDIR}/config.tgz"; export extract_file; \ | | 67 | ${RUN} extract_file="${_DISTDIR}/config.tgz"; \ |
| | | 68 | export extract_file; \ |
57 | cd ${WRKDIR}; ${EXTRACT_CMD} | | 69 | cd ${WRKDIR}; ${EXTRACT_CMD} |
58 | ${RUN} extract_file="${_DISTDIR}/runtime.tgz"; export extract_file; \ | | 70 | ${RUN} extract_file="${_DISTDIR}/runtime.tgz"; \ |
| | | 71 | export extract_file; \ |
59 | cd ${WRKDIR}/src; ${EXTRACT_CMD} | | 72 | cd ${WRKDIR}/src; ${EXTRACT_CMD} |
60 | ${RUN} extract_file="${_DISTDIR}/runtime.tgz"; export extract_file; \ | | | |
61 | mkdir ${WRKDIR}/base; cd ${WRKDIR}/base; ${EXTRACT_CMD} | | | |
62 | | | 73 | |
63 | # make symlinks to the dist files | | 74 | # symlink the rest of the distfiles |
64 | post-extract: | | 75 | post-extract: |
65 | cd ${WRKDIR} && ${LN} -sf ${_DISTDIR}/* . | | 76 | cd ${WRKDIR} && ${LN} -sf ${_DISTDIR}/* . |
| | | 77 | |
| | | 78 | # make the necessary copy of the runtime, _after_ patching src |
| | | 79 | post-patch: |
| | | 80 | cd ${WRKDIR}/src && pax -rw runtime ${WRKDIR}/base/ |
66 | | | 81 | |
67 | # resolve definition of SML_BASE, CFLAGS in patched files | | 82 | # resolve definition of SML_BASE, CFLAGS in patched files |
68 | do-configure: | | 83 | do-configure: |
69 | set -e; \ | | 84 | set -e; \ |
70 | if [ ${MACHINE_ARCH} = "powerpc" ]; then \ | | 85 | if [ ${MACHINE_ARCH} = "powerpc" ]; then \ |
71 | ${AWK} '(! /^request nlffi$$/) { print }' \ | | 86 | ${AWK} '(! /^request nlffi$$/) { print }' \ |
72 | < ${WRKDIR}/config/targets \ | | 87 | < ${WRKDIR}/config/targets \ |
73 | > ${WRKDIR}/temp; \ | | 88 | > ${WRKDIR}/temp; \ |
74 | ${MV} ${WRKDIR}/temp ${WRKDIR}/config/targets; \ | | 89 | ${MV} ${WRKDIR}/temp ${WRKDIR}/config/targets; \ |
75 | fi | | 90 | fi |
76 | set -e; \ | | 91 | set -e; \ |
77 | cd ${WRKDIR}/config; \ | | 92 | cd ${WRKDIR}/config; \ |
78 | for f in ${SML_SCRIPTS}; do \ | | 93 | for f in ${SML_SCRIPTS}; do \ |