Files
ports/lang/fpc-wasip1-devel/Makefile
T
2026-10-04 04:07:15 +00:00

137 lines
4.8 KiB
Makefile

PORTNAME= fpc
PORTVERSION= 3.3.1.20260901
CATEGORIES= lang
PKGNAMESUFFIX?= -wasip1-devel
DIST_SUBDIR= freepascal
MAINTAINER= acm@FreeBSD.org
COMMENT?= Free Pascal wasm wasip1 compiler (devel)
WWW= https://www.freepascal.org/
CONFLICTS?= fpc-wasip1threads-devel
RUN_DEPENDS= ${LOCALBASE}/bin/as:devel/binutils
ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le
USES+= fpc gmake iconv
USE_BINUTILS= yes
WANT_FPC_DEVEL= yes
USE_GITLAB= yes
GL_SITE= https://gitlab.com/freepascal.org
GL_ACCOUNT= fpc
GL_PROJECT= source
GL_TAGNAME= da47439dd51b003bc45f1ad41bd2ca24614d13f7
FPCOSTARGET= ${PKGNAMESUFFIX:S/-devel//:S/-//}
FPCSRCDIR= source-${GL_TAGNAME}
FPCBASEVER= 3.3.1
PLIST_SUB= PORTVERSION=${FPCBASEVER} \
FPCOSTARGET=${FPCOSTARGET}
MAKE_ARGS= OPT="-O-" \
BSDHIER=1 \
BINUTILSPREFIX="" \
INSTALL="${INSTALL_DATA} -p" \
INSTALLEXE="${INSTALL_PROGRAM}" \
INSTALLSCR="${INSTALL_SCRIPT}" \
INSTALL_PREFIX=${STAGEDIR}${PREFIX} \
OS_TARGET=${FPCOSTARGET} \
CPU_TARGET=wasm32 \
PP=${LOCALBASE}/bin/fpc
do-extract:
# unpack source distribution
@(cd ${WRKDIR} && ${GZIP_CMD} -dc \
${_DISTDIR}/${PORTNAME}-source-${GL_TAGNAME}_GL0${EXTRACT_SUFX} | \
${TAR} -xf -)
post-patch:
@${REINPLACE_CMD} -i "" -e 's|900044|${OSVERSION}|g' \
-e 's|1201000|${OSVERSION}|g' \
-e 's|1200000|${OSVERSION}|g' \
-e 's|1302001|${OSVERSION}|g' \
-e 's|1500068|${OSVERSION}|g' \
${WRKSRC}/rtl/freebsd/${FPC_ARCH}/*.as \
${WRKSRC}/rtl/freebsd/${FPC_ARCH}/*.inc
.if empty(ICONV_LIB)
@${REINPLACE_CMD} -i "" -e "s|s<>'c'|(s<>'c') and (s<>'iconv')|" \
-e "s|%%FPC_LDPATH%%|${FPC_LDPATH}|g" \
${WRKDIR}/${FPCSRCDIR}/compiler/systems/t_bsd.pas
@${REINPLACE_CMD} -i "" -e 's|defined(bsd) and not ||' \
${WRKDIR}/${FPCSRCDIR}/rtl/unix/cwstring.pp
.endif
@${REINPLACE_CMD} -i "" -e '/samplecfg/ {s/INSTALLEXE/INSTALLSCR/;}' \
${WRKDIR}/${FPCSRCDIR}/compiler/Makefile
@${REINPLACE_CMD} -i "" -e 's|/usr/local|${PREFIX}|g' \
${WRKDIR}/${FPCSRCDIR}/packages/fpmkunit/src/fpmkunit.pp
@${REINPLACE_CMD} -i "" -e 's|$ifdef linux|$ifdef linux or $$ifdef freebsd|g' \
${WRKSRC}/packages/opengles/src/gles20.pas
# enable units
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/a52/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/dts/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|freebsd,||g' \
${WRKSRC}/packages/fpgtk/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|iphonesim|freebsd,iphonesim|g' \
${WRKSRC}/packages/gnome1/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|iphonesim|freebsd,iphonesim|g' \
${WRKSRC}/packages/gtk1/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|iphonesim|freebsd,iphonesim|g' \
${WRKSRC}/packages/imlib/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/ldap/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/libnettle/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/libsee/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/lua/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/mad/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/modplug/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|Linux|freebsd,linux|g' \
${WRKSRC}/packages/newt/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/oggvorbis/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/openal/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
-e 's|x86_64|x86_64,aarch64|g' \
${WRKSRC}/packages/opencl/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/opengles/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/proj4/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|os2|freebsd,os2|g' \
${WRKSRC}/packages/rexx/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/wasmedge/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/wasmtime/fpmake.pp
@${REINPLACE_CMD} -i "" -e 's|linux|freebsd,linux|g' \
${WRKSRC}/packages/zorba/fpmake.pp
do-build:
# build fpc compiler
@${ECHO_MSG} "##### STARTING WASM32-WASIP1 CROSS-COMPILER AND UNITS #####"
(cd ${WRKSRC} && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} \
crossall ${MAKE_ARGS})
@${ECHO_MSG} "##### COMPLETE WASM32-WASIP1 CROSS-COMPILER AND UNITS #####"
do-install:
# Installing the native wasm32-wasip1 cross-compiler and target units
(cd ${WRKSRC} && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} \
crossinstall ${MAKE_ARGS})
(cd ${STAGEDIR}${PREFIX}/bin && \
${LN} -sf ../lib/fpc/${FPCBASEVER}/ppcrosswasm32 && \
${LN} -sf ../lib/fpc/${FPCBASEVER}/ppcrosswasm32 ppcwasm32)
.include <bsd.port.mk>