diff --git a/lang/mlton/Makefile b/lang/mlton/Makefile index 72932f0a4b96..748bcfcd811d 100644 --- a/lang/mlton/Makefile +++ b/lang/mlton/Makefile @@ -1,202 +1,176 @@ -# Previously maintained by Jesper Louis Andersen -# (jesper.louis.andersen@gmail.com) and Geoffrey Mainland -# (mainland@apeiron.net) -# # Because MLton is written in SML, it needs an SML compiler to build. # It is easiest to use another (earlier) binary version of MLton as # the SML compiler. So, this Makefile fetches and installs an # already-built version of MLton, BOOT_DIST, to use for bootstrapping. PORTNAME= mlton PORTVERSION= 20210816 PORTREVISION= 1 CATEGORIES= lang MASTER_SITES+= https://github.com/beyert/mlton-freebsd_bootstrap/raw/c7371c1/:bootstrap DISTFILES+= ${BOOTNAME}.i386-${OPSYS:tl}-13.txz:bootstrap \ ${BOOTNAME}.amd64-${OPSYS:tl}-13.txz:bootstrap \ ${BOOTNAME}.i386-${OPSYS:tl}-12.txz:bootstrap \ - ${BOOTNAME}.amd64-${OPSYS:tl}-12.txz:bootstrap \ - ${BOOTNAME}.i386-${OPSYS:tl}-11.txz:bootstrap \ - ${BOOTNAME}.amd64-${OPSYS:tl}-11.txz:bootstrap + ${BOOTNAME}.amd64-${OPSYS:tl}-12.txz:bootstrap MAINTAINER= beyert@cs.ucr.edu COMMENT= Optimizing Standard ML compiler WWW= http://mlton.org/ LICENSE= HPND LICENSE_GROUPS= COPYFREE OSI LICENSE_NAME= Historical Permission Notice and Disclaimer LICENSE_FILE= ${WRKSRC}/LICENSE LICENSE_PERMS= ${_LICENSE_PERMS_DEFAULT} ONLY_FOR_ARCHS= amd64 i386 BUILD_DEPENDS= bash:shells/bash LIB_DEPENDS= libgmp.so:math/gmp RUN_DEPENDS= bash:shells/bash USES= compiler:c11 gmake BOOTNAME= ${BOOTNAMEPREFIX}${PORTNAME}${BOOTNAMESUFFIX}-${BOOTVERSIONPREFIX}${BOOTVERSION}${BOOTVERSIONSUFFIX} BOOTVERSIONSUFFIX= BOOTVERSION= ${PORTVERSION} BOOTOSMAJ= ${OSREL:R} OPTIONS_DEFINE= DOCS EXAMPLES OPTIONS_DEFAULT= MLTON NATIVE OPTIONS_SINGLE= BOOTSTRAP TARGET -OPTIONS_SINGLE_BOOTSTRAP= MLTON POLYML SMLNJ WINE -OPTIONS_SINGLE_TARGET= MINGW32 NATIVE +OPTIONS_SINGLE_BOOTSTRAP= MLTON POLYML SMLNJ +OPTIONS_SINGLE_TARGET= NATIVE -MINGW32_DESC= Add mingw32 Windows target (requires wine) MLTON_DESC= Bootstrap with MLton (ideal if supported) NATIVE_DESC= Use default target for given architecture POLYML_DESC= Bootstrap with PolyML SMLNJ_DESC= Bootstrap with SML/NJ (can take many hours) -WINE_DESC= Bootstrap MINGW32 with wine DOCS_BUILD_DEPENDS= htmldoc:textproc/htmldoc DOCS_USES= tex DOCS_USE= TEX=latex:build DOCS_MAKE_ARGS= MLTON_BINARY_RELEASE_WITH_DOCS=true DOCS_MAKE_ARGS_OFF= MLTON_BINARY_RELEASE_WITH_DOCS=false DOCS_ALL_TARGET= install-docs all DOCS_ALL_TARGET_OFF= all DOCS_INSTALL_TARGET= install-docs install DOCS_INSTALL_TARGET_OFF= install -MINGW32_BROKEN= not yet implemented MINGW32 option in modern versions of ${PORTNAME} MLTON_MAKE_ARGS= DESTDIR='' \ LIB=${BOOT_WRKSRC}/lib \ MLTON_VERSION=${PORTVERSION} \ PATH=${WRKSRC}/build/bin:${BOOT_WRKSRC}/bin:${PATH} \ PREFIX=${PREFIX} \ SML_LIB=${BOOT_WRKSRC}/lib/sml \ TDOC=${STAGEDIR}${DOCSDIR} \ TEXM=${STAGEDIR}${EXAMPLESDIR} \ WITH_GMP_DIR=${PREFIX} MLTON_MAKE_ARGS_OFF= DESTDIR='' \ MLTON_VERSION=${PORTVERSION} \ PATH=${WRKSRC}/build/bin:${WRKDIR}/bin:${PATH} \ PREFIX=${PREFIX} \ WITH_GMP_DIR=${PREFIX} NATIVE_VARS= BOOT_DIST=${BOOTNAME}.${ARCH}-${OPSYS:tl}-${BOOTOSMAJ}.txz NATIVE_VARS_OFF= BOOT_DIST= POLYML_BUILD_DEPENDS= polyc:lang/polyml #POLYML_CPPFLAGS= -L/usr/local/lib -lpolyml -lpolymain #POLYML_LDFLAGS= -L/usr/local/lib -lpolyml -lpolymain POLYML_ALL_TARGET= polyml-mlton POLYML_VARS= BOOT_DIST= \ MAKE_JOBS_UNSAFE= \ yes SMLNJ_BUILD_DEPENDS= smlnj>=110.65:lang/smlnj SMLNJ_MAKE_ENV= SMLNJ_DEVEL=yes SMLNJ_ALL_TARGET= smlnj-mlton SMLNJ_VARS= BOOT_DIST= \ MAKE_JOBS_UNSAFE=yes .include BOOT_WRKSRC= ${WRKSRC}/build BOOT_WRKTMP= ${WRKDIR}/mlton-bootstrap .if ${PORT_OPTIONS:MNATIVE} && ${OSREL:R} >= 13 BOOTOSMAJ= 13 .endif BOOT_DIST_NEW= ${PKGNAME}${DISTVERSIONSUFFIX}.${ARCH}-${OPSYS:tl}-${OSREL:R}-${HOST}${BOOT_SUFX} -.if ${PORT_OPTIONS:MMINGW32} && ${PORT_OPTIONS:MWINE} -BUILD_DEPENDS+= ${LOCALBASE}/mingw32/lib/libgmp.a:math/mingw32-libgmp \ - mingw32-gcc:devel/mingw32-gcc \ - wine:emulators/wine -RUN_DEPENDS+= ${LOCALBASE}/mingw32/lib/libgmp.a:math/mingw32-libgmp \ - mingw32-gcc:devel/mingw32-gcc -SSP_CFLAGS?= -fstack-protector # XXX -strong isn't supported by GCC < 4.9 - -PLIST_SUB+= MINGW32CROSS="" -.else -PLIST_SUB+= MINGW32CROSS="@comment " -.endif - USE_GITHUB= yes GH_ACCOUNT= MLton GH_PROJECT= mlton GH_TAGNAME= b2fca3d BOOT_CMD= --xz BOOT_SUFX= .txz RAM_SLOP_32= $$(${SYSCTL} "hw.physmem" | ${AWK} '{ values = values" "$$2 } END { print values; }' | ${AWK} '{ "freebsd-version -r" | getline ver; split(ver, xs, "\."); kernelOSMAJ = xs[1]; osj = ${BOOTOSMAJ}; physmem = $$1 / 1024 / 1024 / 1024; os = kernelOSMAJ; maxphysmem = physmem; if (physmem > 3.2) { maxphysmem = 3.2; }; ospcent = 0.70; if (osj < 13 && os != osj) { ospcent = 0.65; } else if (os >= 13) { if (physmem < 3.1) { ospcent = 0.83; } else { ospcent = 0.80; } }; targetmem = maxphysmem * ospcent; targetpcent = targetmem / physmem; print int((targetpcent + 0.005) * 100) / 100; }') post-extract: @${MKDIR} ${BOOT_WRKSRC} @${REINPLACE_CMD} 's/CC := cc/CC := ${CC}/g' ${WRKSRC}/Makefile.config @${REINPLACE_CMD} 's|gcc|${CC}|g' ${WRKSRC}/doc/examples/ffi/Makefile @${REINPLACE_CMD} \ 's|-lpolymain -lpolyml|-L ${PREFIX}/lib -lpolymain -lpolyml|g' \ ${WRKSRC}/mlton/Makefile .if ${ARCH} == "i386" @${REINPLACE_CMD} -e "s/ram-slop 0\.7/ram-slop ${RAM_SLOP_32}/" \ -e 's|COMPILE_XARGS :=|COMPILE_XARGS := -polyvariance false|' \ ${WRKSRC}/mlton/Makefile @${REINPLACE_CMD} -e "s/ram-slop 0\.7/ram-slop ${RAM_SLOP_32}/" \ -e "s|^OLD_MLTON_RUNTIME_ARGS :=|OLD_MLTON_RUNTIME_ARGS := ram-slop ${RAM_SLOP_32}|" \ -e 's|^OLD_MLTON_COMPILE_ARGS :=|OLD_MLTON_COMPILE_ARGS := -polyvariance false|' \ ${WRKSRC}/Makefile.config .else @${REINPLACE_CMD} \ -e 's|COMPILE_XARGS :=|COMPILE_XARGS := -polyvariance false|' \ ${WRKSRC}/mlton/Makefile @${REINPLACE_CMD} \ -e 's|^OLD_MLTON_COMPILE_ARGS :=|OLD_MLTON_COMPILE_ARGS := -polyvariance false|' \ ${WRKSRC}/Makefile.config .endif @${REINPLACE_CMD} 's|gcc|${CC}|g' ${WRKSRC}/mlnlffigen/gen-cppcmd @${REINPLACE_CMD} 's|"cc"|"${CC}"|g' ${WRKSRC}/bin/mlton-script @${FIND} ${WRKDIR} | ${GREP} '\.bak$$' | ${AWK} '{ system("${RM} "$$0); }' post-extract-DOCS-on: @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} post-extract-MLTON-on: @${TAR} xf ${DISTDIR}/${BOOT_DIST} ${BOOT_CMD} -C ${BOOT_WRKSRC} @${REINPLACE_CMD} \ 's|/usr/local/lib/mlton|${BOOT_WRKSRC}/lib/mlton|g' \ ${BOOT_WRKSRC}/bin/mlton @${REINPLACE_CMD} 's|$$gcc|$$CC|g' ${BOOT_WRKSRC}/bin/mlton post-install: .if ${PORT_OPTIONS:MDOCS} && ${PORT_OPTIONS:MEXAMPLES} ${MV} ${STAGEDIR}${DOCSDIR}/examples/* ${STAGEDIR}${EXAMPLESDIR}/ .elif ${PORT_OPTIONS:MDOCS} ${RM} -r ${STAGEDIR}${DOCSDIR}/examples ${RMDIR} ${STAGEDIR}${EXAMPLESDIR} .elif ${PORT_OPTIONS:MEXAMPLES} # ${MV} ${STAGEDIR}${DOCSDIR}/examples/* ${STAGEDIR}${EXAMPLESDIR}/ # ${RM} -r ${STAGEDIR}${DOCSDIR} BROKEN+= In port ${PORTNAME}, EXAMPLES requires DOCS .endif @${FIND} ${WRKDIR} | ${GREP} '\.bak$$' | ${AWK} '{ system("${RM} "$$0); }' makebootstrap: all @${ECHO_MSG} "====> Making new bootstrap image (${BOOT_DIST_NEW})" # @${FIND} ${WRKDIR} | ${GREP} '\.bak$$' | ${AWK} '{ system("${RM} "$$0); }' @${MKDIR} ${BOOT_WRKTMP} @cd ${STAGEDIR}${PREFIX} && ${CP} -pR lib bin ${BOOT_WRKTMP}/ @${MKDIR} ${BOOT_WRKTMP}/doc && cd ${WRKSRC}/doc && \ ${CP} -pR license README.adoc CHANGELOG.adoc ${BOOT_WRKTMP}/doc/ @cd ${WRKSRC} && ${CP} -pR LICENSE README.adoc CHANGELOG.adoc \ ${BOOT_WRKTMP}/ @cd ${BOOT_WRKTMP} && \ ${TAR} cfp ${BOOT_WRKTMP}/${BOOT_DIST_NEW} ${BOOT_CMD} \ lib bin doc LICENSE README.adoc CHANGELOG.adoc @${ECHO_MSG} "====> Installing new bootstrap image (${BOOT_DIST_NEW})" @${CP} -p ${BOOT_WRKTMP}/${BOOT_DIST_NEW} ${DISTDIR}/ @${ECHO_MSG} "====> Backing up new bootstrap image (${BOOT_DIST_NEW})" @${MV} ${BOOT_WRKTMP}/${BOOT_DIST_NEW} ${MASTERDIR}/ ## @${RMDIR} ${BOOT_WRKTMP} -post-build-MINGW32-on: - @${ECHO} Adding mingw32 target... - ${WRKSRC}/bin/add-local-cross mingw32 x86 mingw - .include diff --git a/lang/mlton/distinfo b/lang/mlton/distinfo index 86709166813c..0332b07e115c 100644 --- a/lang/mlton/distinfo +++ b/lang/mlton/distinfo @@ -1,15 +1,11 @@ TIMESTAMP = 1634426635 SHA256 (mlton-20210816.i386-freebsd-13.txz) = 4faa271b60a82793b7911d8e9863d9831df9bf095badf670ec27c9b86ac1266b SIZE (mlton-20210816.i386-freebsd-13.txz) = 4417216 SHA256 (mlton-20210816.amd64-freebsd-13.txz) = 767ed2fe0e204cd59f9065c9ff96c885d50321f2004cff0a94e84db3e664dc8a SIZE (mlton-20210816.amd64-freebsd-13.txz) = 5530224 SHA256 (mlton-20210816.i386-freebsd-12.txz) = a6d173463c36b2c79ba48c9d94c7857e842ca2c423a952623b7a251390f1d103 SIZE (mlton-20210816.i386-freebsd-12.txz) = 4582828 SHA256 (mlton-20210816.amd64-freebsd-12.txz) = d289134bd1371d0c4f090b2945a2fa87052d5e298b9612420dbbb6335440a763 SIZE (mlton-20210816.amd64-freebsd-12.txz) = 5517216 -SHA256 (mlton-20210816.i386-freebsd-11.txz) = bcc21ef73dcb1eb773cbe076b5a79a9ffad9e431cae4eeac317078741055b91d -SIZE (mlton-20210816.i386-freebsd-11.txz) = 4613016 -SHA256 (mlton-20210816.amd64-freebsd-11.txz) = b8ddde2adcb08ca76fc6ba3ff6d7186ee7074b3a7b4be6e982a5b1d2fe10eefd -SIZE (mlton-20210816.amd64-freebsd-11.txz) = 5656260 SHA256 (MLton-mlton-20210816-b2fca3d_GH0.tar.gz) = 9809f100308c3330803d3d52052ecdc00774b74869f57ec20880c46ba796ea6d SIZE (MLton-mlton-20210816-b2fca3d_GH0.tar.gz) = 14307327