BROKEN-amd64 = EAccessViolation in ppc1 following move to LLVM 16 ONLY_FOR_ARCHS = amd64 i386 COMMENT = open source compiler for Pascal/Object Pascal V = 3.2.2 DISTNAME = fpcbuild-${V} PKGNAME = fpc-${V} REVISION = 0 FPCBOOT-amd64 = fpcboot-openbsd-amd64-$V-2.tar.gz FPCBOOT-i386 = fpcboot-openbsd-i386-$V-1.tar.gz CATEGORIES = lang HOMEPAGE = http://www.freepascal.org/ MAINTAINER = Pascal Stumpf # compiler: GPLv2+, packages/rtl: modified LGPLv2 PERMIT_PACKAGE = Yes WANTLIB += c iconv pthread LIB_DEPENDS = converters/libiconv SITES = ${SITE_SOURCEFORGE:=freepascal/} SITES.boot = https://distfiles.stumpf.co/ DIST_SUBDIR = fpc .if ${MACHINE_ARCH:Mamd64} || ${MACHINE_ARCH:Mi386} DISTFILES = ${DISTNAME}${EXTRACT_SUFX} DISTFILES.boot = ${FPCBOOT-${MACHINE_ARCH}} .endif SUPDISTFILES.boot = ${FPCBOOT-amd64} ${FPCBOOT-i386} .if ${MACHINE_ARCH} == "amd64" COMPNAME = ppcx64 CONFIG = x86_64-openbsd PKG_ARGS += -Damd64=1 PKG_ARGS += -Di386=0 .else COMPNAME = ppc386 CONFIG = i386-openbsd PKG_ARGS += -Di386=1 PKG_ARGS += -Damd64=0 .endif SUBST_VARS += V CONFIG TEST_DEPENDS = devel/nasm MAKE_FLAGS = NOGDB=1 COMMON_ENV = MKDIRPROG=/bin/mkdir ECHO=/bin/echo \ GINSTALL=/usr/bin/install DATE=/bin/date \ TARPROG=/bin/tar MAKE_ENV = ${COMMON_ENV} \ FPC="${WRKDIR}/bootstrap/bin/${COMPNAME}" \ LD_LIBRARY_PATH="${WRKDIR}/bootstrap/lib" TEST_ENV = ${COMMON_ENV} FAKE_FLAGS = INSTALLEXE="${INSTALL_PROGRAM}" \ MKDIR="${INSTALL_DATA_DIR}" \ INSTALL="${INSTALL_DATA}" TEST_FLAGS = TEST_FPC="${WRKSRC}/fpcsrc/compiler/${COMPNAME}" \ FPC="${WRKSRC}/fpcsrc/compiler/${COMPNAME}" \ OPT="-Fu${WRKSRC}/fpcsrc/rtl/units/${CONFIG} -Fu${WRKSRC}/fpcsrc/packages/rtl-objpas/units/${CONFIG}" \ TEST_OPT="-Fu${WRKSRC}/fpcsrc/rtl/units/${CONFIG}" \ FPCMAKE="${WRKSRC}/fpcsrc/utils/fpcm/bin/${CONFIG}/fpcmake" USE_GMAKE = Yes post-extract: chmod 644 ${WRKDIR}/bootstrap/lib/libc.so* cp $$(ls /usr/lib/libc.so.* | sort -V | tail -1) ${WRKDIR}/bootstrap/lib/libc.so* post-install: cd ${PREFIX}/bin && ln -s ../lib/fpc/${V}/${COMPNAME} . chown -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/lib/fpc/lexyacc chmod ${DIRMODE} ${PREFIX}/lib/fpc/lexyacc/ chmod ${SHAREMODE} ${PREFIX}/lib/fpc/lexyacc/* chown -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/share/doc/fpc-${V}/fpc chmod ${DIRMODE} ${PREFIX}/share/doc/fpc-${V}/fpc/ chmod ${SHAREMODE} ${PREFIX}/share/doc/fpc-${V}/fpc/* ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/fpc-$V # generate sample config file ${PREFIX}/bin/fpcmkcfg -d "basepath=${TRUEPREFIX}/lib/fpc/$V" \ -o ${PREFIX}/share/examples/fpc-$V/fpc.cfg.sample do-test: find ${WRKSRC} -name Package.fpc -delete cd ${WRKSRC}/fpcsrc/tests && \ env -i ${ALL_TEST_ENV} ${MAKE_PROGRAM} ${ALL_TEST_FLAGS} full BOOTSTRAPDIR=${WRKDIR}/bootstrap-prepare bootstrap: build mkdir -p ${BOOTSTRAPDIR}/bootstrap/{bin,lib} cp ${WRKSRC}/fpcsrc/compiler/${COMPNAME} ${BOOTSTRAPDIR}/bootstrap/bin ldd ${BOOTSTRAPDIR}/bootstrap/bin/${COMPNAME} \ | awk '$$3 == "rlib" { print $$7 }' \ | xargs -J % cp % ${BOOTSTRAPDIR}/bootstrap/lib cd ${BOOTSTRAPDIR} && tar cf - bootstrap | \ gzip > ${FULLDISTDIR}/${FPCBOOT-${MACHINE_ARCH}} .include