Sun Jul 3 19:08:22 2016 UTC ()
Generate the base/ copy of the runtime from the src/ copy after
patching, instead of extracting twice.


(dholland)
diff -r1.26 -r1.27 pkgsrc/lang/smlnj/Makefile

cvs diff -r1.26 -r1.27 pkgsrc/lang/smlnj/Makefile (expand / switch to unified diff)

--- pkgsrc/lang/smlnj/Makefile 2016/04/14 22:10:06 1.26
+++ pkgsrc/lang/smlnj/Makefile 2016/07/03 19:08:22 1.27
@@ -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
4DISTNAME= boot.${BOX}-unix 4DISTNAME= boot.${BOX}-unix
5PKGNAME= smlnj-${SML_VERSION} 5PKGNAME= smlnj-${SML_VERSION}
6CATEGORIES= lang 6CATEGORIES= lang
7MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/working/${SML_VERSION}/ 7MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/working/${SML_VERSION}/
8DISTFILES= MLRISC.tgz \ 8DISTFILES= 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}
37DIST_SUBDIR= smlnj-${SML_VERSION} 37DIST_SUBDIR= smlnj-${SML_VERSION}
38USE_TOOLS+= gmake pax 38USE_TOOLS+= gmake pax
39 39
40# previous versions of the package had an additional '-' 40# previous versions of the package had an additional '-'
41CONFLICTS= sml-nj-[0-9]* 41CONFLICTS= sml-nj-[0-9]*
42 42
43SML_BASE= ${PREFIX}/lib/smlnj 43SML_BASE= ${PREFIX}/lib/smlnj
44SML_LIBDIR= ${SML_BASE}/lib 44SML_LIBDIR= ${SML_BASE}/lib
45SML_BINDIR= ${SML_BASE}/bin 45SML_BINDIR= ${SML_BASE}/bin
46SML_SCRIPTS= _link-sml _run-sml _ml-build _ml-makedepend 46SML_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
51pre-extract: 61pre-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
55do-extract: 66do-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
64post-extract: 75post-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
 79post-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
68do-configure: 83do-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 \