721e5776c9
- Update all the consumers to use USES=tex - USE_TEX=yes is the old way of writing USES=tex which has been removed and replaced in all ports - Almost all of the USE_TEX features remains unchanged - Some consumers had the same variables defined both in the mk infrastructure and also in the ports which have been removed from the ports as those are redundant. In case any of the consumers are failing to build please make sure that the nexessary USES=tex is there. Unlike previous USE_TEX=yes will no longer load the required VARS for tex and related dependencies. Reviewed by: portmgr Approved by: portmgr (blanket)
219 lines
7.1 KiB
Makefile
219 lines
7.1 KiB
Makefile
# 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
|
|
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
|
|
|
|
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_SINGLE= TARGET BOOTSTRAP
|
|
OPTIONS_SINGLE_TARGET= NATIVE MINGW32
|
|
OPTIONS_SINGLE_BOOTSTRAP= MLTON SMLNJ POLYML WINE
|
|
|
|
OPTIONS_DEFAULT= NATIVE MLTON
|
|
|
|
MLTON_DESC= Bootstrap with MLton (ideal if supported)
|
|
SMLNJ_DESC= Bootstrap with SML/NJ (can take many hours)
|
|
POLYML_DESC= Bootstrap with PolyML
|
|
WINE_DESC= Bootstrap MINGW32 with wine
|
|
|
|
NATIVE_DESC= Use default target for given architecture
|
|
MINGW32_DESC= Add mingw32 Windows target (requires wine)
|
|
|
|
.include <bsd.port.options.mk>
|
|
|
|
.if ${PORT_OPTIONS:MMINGW32}
|
|
BROKEN+= not yet implemented MINGW32 option in modern versions of ${PORTNAME}
|
|
.endif
|
|
|
|
BOOT_WRKSRC= ${WRKSRC}/build
|
|
BOOT_WRKTMP= ${WRKDIR}/mlton-bootstrap
|
|
|
|
.if ! ${PORT_OPTIONS:MMLTON}
|
|
MAKE_ARGS= DESTDIR='' MLTON_VERSION=${PORTVERSION} \
|
|
PATH=${WRKSRC}/build/bin:${WRKDIR}/bin:${PATH} \
|
|
PREFIX=${PREFIX} \
|
|
WITH_GMP_DIR=${PREFIX}
|
|
.else
|
|
MAKE_ARGS= DESTDIR='' MLTON_VERSION=${PORTVERSION} \
|
|
PATH=${WRKSRC}/build/bin:${BOOT_WRKSRC}/bin:${PATH} \
|
|
PREFIX=${PREFIX} \
|
|
SML_LIB=${BOOT_WRKSRC}/lib/sml WITH_GMP_DIR=${PREFIX} \
|
|
PREFIX=${PREFIX} LIB=${BOOT_WRKSRC}/lib \
|
|
TDOC=${STAGEDIR}${DOCSDIR} \
|
|
TEXM=${STAGEDIR}${EXAMPLESDIR}
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MDOCS}
|
|
BUILD_DEPENDS+= htmldoc:textproc/htmldoc
|
|
MAKE_ARGS+= MLTON_BINARY_RELEASE_WITH_DOCS=true
|
|
USES+= tex
|
|
USE_TEX= latex:build
|
|
#USE_TEX= latex:formats
|
|
INSTALL_TARGET= install-docs install
|
|
ALL_TARGET= install-docs all
|
|
.else
|
|
MAKE_ARGS+= MLTON_BINARY_RELEASE_WITH_DOCS=false
|
|
INSTALL_TARGET= install
|
|
ALL_TARGET= all
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MSMLNJ}
|
|
BUILD_DEPENDS+= smlnj>=110.65:lang/smlnj
|
|
BOOT_DIST=
|
|
MAKE_JOBS_UNSAFE= yes
|
|
MAKE_ENV+= SMLNJ_DEVEL=yes
|
|
.if ! ${PORT_OPTIONS:MDOCS}
|
|
ALL_TARGET= smlnj-mlton all
|
|
.else
|
|
ALL_TARGET= smlnj-mlton install-docs all
|
|
.endif
|
|
.elif ${PORT_OPTIONS:MPOLYML}
|
|
BUILD_DEPENDS+= polyc:lang/polyml
|
|
BOOT_DIST=
|
|
MAKE_JOBS_UNSAFE= yes
|
|
#CPPFLAGS+= -L/usr/local/lib -lpolyml -lpolymain
|
|
#LDFLAGS+= -L/usr/local/lib -lpolyml -lpolymain
|
|
.if ! ${PORT_OPTIONS:MDOCS}
|
|
ALL_TARGET= polyml-mlton all
|
|
.else
|
|
ALL_TARGET= polyml-mlton install-docs all
|
|
.endif
|
|
.elif ${PORT_OPTIONS:MNATIVE}
|
|
BOOT_DIST= ${BOOTNAME}.${ARCH}-${OPSYS:tl}-${BOOTOSMAJ}.txz
|
|
.else
|
|
BOOT_DIST=
|
|
.endif
|
|
|
|
BOOT_DIST_NEW= ${PKGNAME}${DISTVERSIONSUFFIX}.${ARCH}-${OPSYS:tl}-${OSREL:R}-${HOST}${BOOT_SUFX}
|
|
|
|
.if ${PORT_OPTIONS:MMINGW32} && ${PORT_OPTIONS:MWINE}
|
|
BUILD_DEPENDS+= wine:emulators/wine \
|
|
mingw32-gcc:devel/mingw32-gcc \
|
|
${LOCALBASE}/mingw32/lib/libgmp.a:math/mingw32-libgmp
|
|
RUN_DEPENDS+= mingw32-gcc:devel/mingw32-gcc \
|
|
${LOCALBASE}/mingw32/lib/libgmp.a:math/mingw32-libgmp
|
|
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
|
|
|
|
post-extract:
|
|
@${MKDIR} ${BOOT_WRKSRC}
|
|
.if ${PORT_OPTIONS:MMLTON}
|
|
@${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
|
|
.endif
|
|
@${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 ${PORT_OPTIONS:MDOCS}
|
|
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
|
|
.endif
|
|
.if ${ARCH} == "i386"
|
|
.if ${OSREL:R} == 13
|
|
@${REINPLACE_CMD} -e 's/ram-slop 0\.7/ram-slop 0.8/' \
|
|
-e 's|COMPILE_XARGS :=|COMPILE_XARGS := -polyvariance false|' \
|
|
${WRKSRC}/mlton/Makefile
|
|
.else
|
|
@${REINPLACE_CMD} -e 's/ram-slop 0\.7/ram-slop 0.7/' \
|
|
-e 's|COMPILE_XARGS :=|COMPILE_XARGS := -polyvariance false|' \
|
|
${WRKSRC}/mlton/Makefile
|
|
.endif
|
|
@${REINPLACE_CMD} -e 's/ram-slop 0\.7/ram-slop 0.8/' \
|
|
-e 's|^OLD_MLTON_RUNTIME_ARGS :=|OLD_MLTON_RUNTIME_ARGS := ram-slop 0.8|' \
|
|
-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-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 <bsd.port.mk>
|