aboutsummaryrefslogtreecommitdiff
path: root/lang/mecrisp-stellaris
diff options
context:
space:
mode:
authorNeel Chauhan <nc@FreeBSD.org>2021-03-16 18:26:31 +0000
committerNeel Chauhan <nc@FreeBSD.org>2021-03-16 18:26:31 +0000
commit28c528249da853ee166d2d62478f25f93fbdd509 (patch)
tree60d3976729e251d0901732e98ecfb9c843af6366 /lang/mecrisp-stellaris
parenteb8b4c11f9f9d16e496a2d7b0b17ae0f9d18a0fc (diff)
downloadports-28c528249da853ee166d2d62478f25f93fbdd509.tar.gz
ports-28c528249da853ee166d2d62478f25f93fbdd509.zip
New port: lang/mecrisp-stellaris: native code Forth for ARM
Mecrisp Stellaris is an implementation of a standalone native code Forth for ARM. It fits into 16 kb of flash and runs with at least 1 kb of RAM. You can choose to compile to flash or to RAM, and it generates native code with folding, inlining of short words and it opcodes common instructions. Note that it doesn't need to save any pointers, so it compiles directly into flash memory without the need for erase cycles. Although it is in spirit of ANS, there are a few differences: Be careful! PR: 253938 Submitted by: Robert Clausecker <fuz AT fuz DOT su>
Notes
Notes: svn path=/head/; revision=568598
Diffstat (limited to 'lang/mecrisp-stellaris')
-rw-r--r--lang/mecrisp-stellaris/Makefile47
-rw-r--r--lang/mecrisp-stellaris/distinfo3
-rw-r--r--lang/mecrisp-stellaris/pkg-descr10
-rw-r--r--lang/mecrisp-stellaris/pkg-plist168
4 files changed, 228 insertions, 0 deletions
diff --git a/lang/mecrisp-stellaris/Makefile b/lang/mecrisp-stellaris/Makefile
new file mode 100644
index 000000000000..85ff9b8cb471
--- /dev/null
+++ b/lang/mecrisp-stellaris/Makefile
@@ -0,0 +1,47 @@
+# $FreeBSD$
+
+PORTNAME= mecrisp-stellaris
+DISTVERSION= 2.5.6
+CATEGORIES= lang
+MASTER_SITES= SF/mecrisp
+
+MAINTAINER= fuz@fuz.su
+COMMENT= Native code Forth system for ARM
+
+LICENSE= GPLv3+
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+ONLY_FOR_ARCHS= armv7
+ONLY_FOR_ARCHS_REASON= written in ARM Thumb2 assembly
+
+# stripping eats our hand-crafted ELF binaries, so don't do that
+# the binaries are free of symbols or stuff like that anyway
+STRIP=
+# definitions assuming we build on ARM
+BINARY_ALIAS= arm-none-eabi-as=${AS} \
+ arm-none-eabi-ld=${LD} \
+ arm-none-eabi-objcopy=${OBJCOPY}
+
+OPTIONS_DEFINE= EXTRAS
+OPTIONS_DEFAULT= EXTRAS
+EXTRAS_DESC= Add disassembler and math library to Forth core
+EXTRAS_VARS= PROGRAM=mecrisp-stellaris-freebsd-with-disassembler-and-math
+EXTRAS_VARS_OFF= PROGRAM=mecrisp-stellaris-freebsd
+
+.include <bsd.port.options.mk>
+
+# Can't use the release script as it tries to build a bunch of stuff
+# that won't build correctly. This does the relevant parts manually.
+do-build:
+ cd ${WRKSRC}/mecrisp-stellaris-source/freebsd-ra && ${SETENV} ${MAKE_ENV} ${SH} assemble
+ ${CP} ${WRKSRC}/mecrisp-stellaris-source/freebsd-ra/mecrisp-stellaris-freebsd ${WRKSRC}/freebsd-ra/
+ cd ${WRKSRC}/freebsd-ra && ${SETENV} ${MAKE_ENV} ${SH} buildcore-freebsd
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_MAN} ${WRKSRC}/README ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_MAN} ${WRKSRC}/KNOWN-ISSUES ${STAGEDIR}${DOCSDIR}
+ cd ${WRKSRC}/common; ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}
+ ${INSTALL_PROGRAM} ${WRKSRC}/freebsd-ra/${PROGRAM} ${STAGEDIR}${PREFIX}/bin/mecrisp-stellaris
+
+.include <bsd.port.mk>
diff --git a/lang/mecrisp-stellaris/distinfo b/lang/mecrisp-stellaris/distinfo
new file mode 100644
index 000000000000..f3ff71faee6b
--- /dev/null
+++ b/lang/mecrisp-stellaris/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1614603481
+SHA256 (mecrisp-stellaris-2.5.6.tar.gz) = 59459eb6d9b3a6bb02d6c9c09e48bafb6ba633938ff419c0bdc447315cae6e86
+SIZE (mecrisp-stellaris-2.5.6.tar.gz) = 5628263
diff --git a/lang/mecrisp-stellaris/pkg-descr b/lang/mecrisp-stellaris/pkg-descr
new file mode 100644
index 000000000000..7751211208d1
--- /dev/null
+++ b/lang/mecrisp-stellaris/pkg-descr
@@ -0,0 +1,10 @@
+Mecrisp Stellaris is an implementation of a standalone native code Forth
+for ARM. It fits into 16 kb of flash and runs with at least 1 kb of
+RAM. You can choose to compile to flash or to RAM, and it generates
+native code with folding, inlining of short words and it opcodes common
+instructions. Note that it doesn't need to save any pointers, so it
+compiles directly into flash memory without the need for erase cycles.
+Although it is in spirit of ANS, there are a few differences: Be
+careful!
+
+WWW: http://mecrisp.sourceforge.net
diff --git a/lang/mecrisp-stellaris/pkg-plist b/lang/mecrisp-stellaris/pkg-plist
new file mode 100644
index 000000000000..e0204bfc700e
--- /dev/null
+++ b/lang/mecrisp-stellaris/pkg-plist
@@ -0,0 +1,168 @@
+bin/mecrisp-stellaris
+%%DOCSDIR%%/KNOWN-ISSUES
+%%DOCSDIR%%/README
+%%DATADIR%%/VIS/VIS-README
+%%DATADIR%%/VIS/vis-0.8.4-disassembler-m3.fs
+%%DATADIR%%/VIS/vis-0.8.4-mecrisp-stellaris.fs
+%%DATADIR%%/VIS/vis-conditional-200x.txt
+%%DATADIR%%/accept-replacement.txt
+%%DATADIR%%/ansification-tester.txt
+%%DATADIR%%/ansification.txt
+%%DATADIR%%/assembler-m0-examples.txt
+%%DATADIR%%/assembler-m0.txt
+%%DATADIR%%/bitflip.txt
+%%DATADIR%%/bitlog.txt
+%%DATADIR%%/blocks.txt
+%%DATADIR%%/calltrace.txt
+%%DATADIR%%/catchthrow.txt
+%%DATADIR%%/charcomma.txt
+%%DATADIR%%/circles.txt
+%%DATADIR%%/conditional-200x.txt
+%%DATADIR%%/conditional.txt
+%%DATADIR%%/cordic-tests.txt
+%%DATADIR%%/cordic.txt
+%%DATADIR%%/cycles.txt
+%%DATADIR%%/date-time-tests.fs
+%%DATADIR%%/date-time.fs
+%%DATADIR%%/defcount.txt
+%%DATADIR%%/disassembler-m0.txt
+%%DATADIR%%/disassembler-m3.txt
+%%DATADIR%%/dump.txt
+%%DATADIR%%/editor.txt
+%%DATADIR%%/examples.txt
+%%DATADIR%%/experimental/bignum.txt
+%%DATADIR%%/experimental/definitioncount.txt
+%%DATADIR%%/experimental/float.txt
+%%DATADIR%%/experimental/forget-stellaris.txt
+%%DATADIR%%/experimental/vocs-0.7.0/README
+%%DATADIR%%/experimental/vocs-0.7.0/VOC-HOWTO-Classes-1.log
+%%DATADIR%%/experimental/vocs-0.7.0/VOC-HOWTO-Classes-2.log
+%%DATADIR%%/experimental/vocs-0.7.0/VOC-HOWTO-DataTypes.log.
+%%DATADIR%%/experimental/vocs-0.7.0/VOC-HOWTO-Registers.log
+%%DATADIR%%/experimental/vocs-0.7.0/examples/lm4f120/GPIO.txt
+%%DATADIR%%/experimental/vocs-0.7.0/examples/lm4f120/Pendulum
+%%DATADIR%%/experimental/vocs-0.7.0/examples/lm4f120/RGB-LED.txt
+%%DATADIR%%/experimental/vocs-0.7.0/examples/lm4f120/SysTick
+%%DATADIR%%/experimental/vocs-0.7.0/examples/lm4f120/das.txt
+%%DATADIR%%/experimental/vocs-0.7.0/vocs-0.7.0-FR/VOC-HOWTO-Classes-1.txt
+%%DATADIR%%/experimental/vocs-0.7.0/vocs-0.7.0-FR/VOC-HOWTO-Classes-2.txt
+%%DATADIR%%/experimental/vocs-0.7.0/vocs-0.7.0-FR/VOC-HOWTO-DataTypes.txt
+%%DATADIR%%/experimental/vocs-0.7.0/vocs-0.7.0-FR/VOC-HOWTO-Registers.txt
+%%DATADIR%%/experimental/vocs-0.7.0/vocs-0.7.0-FR/abort
+%%DATADIR%%/experimental/vocs-0.7.0/vocs-0.7.0-FR/classes.txt
+%%DATADIR%%/experimental/vocs-0.7.0/vocs-0.7.0-FR/search-order.txt
+%%DATADIR%%/experimental/vocs-0.7.0/vocs-0.7.0-FR/struct.txt
+%%DATADIR%%/experimental/vocs-0.7.0/vocs-0.7.0-FR/vocs.txt
+%%DATADIR%%/experimental/vocs-0.7.0/vocs-0.7.0-FR/wordlists.txt
+%%DATADIR%%/experimental/vocs-0.7.0/vocs-0.7.0-FRV/classes.txt
+%%DATADIR%%/experimental/vocs-0.7.0/vocs-0.7.0-FRV/vocs.txt
+%%DATADIR%%/fixpt-math-lib-tests.fs
+%%DATADIR%%/fixpt-math-lib.fs
+%%DATADIR%%/floored-divide.txt
+%%DATADIR%%/fonts/8859-1.TXT
+%%DATADIR%%/fonts/8859-15.TXT
+%%DATADIR%%/fonts/AWARD_ATARI_PC_BIOS_3.08.img
+%%DATADIR%%/fonts/Atari-Font.txt
+%%DATADIR%%/fonts/CP437.TXT
+%%DATADIR%%/fonts/Commodore-C64-Chargen.img
+%%DATADIR%%/fonts/Commodore-C64-Chargen.txt
+%%DATADIR%%/fonts/Commodore-Font.txt
+%%DATADIR%%/fonts/convertfonts
+%%DATADIR%%/fonts/forthfont-8x16-drawing.pas
+%%DATADIR%%/fonts/forthfont-8x16.pas
+%%DATADIR%%/fonts/forthfont-8x8-drawing.pas
+%%DATADIR%%/fonts/forthfont-8x8.pas
+%%DATADIR%%/fonts/iso-8x16
+%%DATADIR%%/fonts/iso-8x16.fs
+%%DATADIR%%/fonts/iso-8x16.txt
+%%DATADIR%%/fonts/iso-8x8
+%%DATADIR%%/fonts/iso-8x8.fs
+%%DATADIR%%/fonts/iso-8x8.txt
+%%DATADIR%%/fonts/iso15-8x16
+%%DATADIR%%/fonts/iso15-8x16.fs
+%%DATADIR%%/fonts/iso15-8x16.txt
+%%DATADIR%%/fonts/iso15-8x8
+%%DATADIR%%/fonts/iso15-8x8.fs
+%%DATADIR%%/fonts/iso15-8x8.txt
+%%DATADIR%%/fonts/scanbinary.pas
+%%DATADIR%%/fonts/tiny/bdf2forth.pas
+%%DATADIR%%/fonts/tiny/tom-thumb-b.txt
+%%DATADIR%%/fonts/tiny/tom-thumb.bdf
+%%DATADIR%%/forget-stellaris.txt
+%%DATADIR%%/graphics-unicode-3x3.txt
+%%DATADIR%%/graphics-unicode-4x6.txt
+%%DATADIR%%/graphics-unicode-8x16.txt
+%%DATADIR%%/graphics-unicode-8x8.txt
+%%DATADIR%%/graphics.txt
+%%DATADIR%%/graycode.txt
+%%DATADIR%%/longcomment.txt
+%%DATADIR%%/multitask-debug.txt
+%%DATADIR%%/multitask-examples.txt
+%%DATADIR%%/multitask.txt
+%%DATADIR%%/nvic.txt
+%%DATADIR%%/profiler.txt
+%%DATADIR%%/prompt.txt
+%%DATADIR%%/pseudorandom.txt
+%%DATADIR%%/quotations.txt
+%%DATADIR%%/romans.txt
+%%DATADIR%%/router.txt
+%%DATADIR%%/sine.txt
+%%DATADIR%%/sqrt.txt
+%%DATADIR%%/sunrise-sunset.fs
+%%DATADIR%%/svd2forth-v1/COPYING
+%%DATADIR%%/svd2forth-v1/Makefile
+%%DATADIR%%/svd2forth-v1/README.txt
+%%DATADIR%%/svd2forth-v1/ancient/mecrisp-registergenerator/COPYING
+%%DATADIR%%/svd2forth-v1/ancient/mecrisp-registergenerator/README.txt
+%%DATADIR%%/svd2forth-v1/ancient/mecrisp-registergenerator/mecrisp-stellaris-reg_make.sh
+%%DATADIR%%/svd2forth-v1/ancient/mecrisp-registergenerator/mecrisp-stellaris-reg_memmap.xsl
+%%DATADIR%%/svd2forth-v1/ancient/mecrisp-registergenerator/mecrisp-stellaris-reg_print.xsl
+%%DATADIR%%/svd2forth-v1/ancient/mecrisp-registergenerator/mecrisp-stellaris-reg_set.xsl
+%%DATADIR%%/svd2forth-v1/ancient/registergenerator/README
+%%DATADIR%%/svd2forth-v1/ancient/registergenerator/convert-with-bitfields.sh
+%%DATADIR%%/svd2forth-v1/ancient/registergenerator/convert.sh
+%%DATADIR%%/svd2forth-v1/ancient/registergenerator/extract-mecrisp.xsl
+%%DATADIR%%/svd2forth-v1/ancient/registergenerator/extract-with-bitfields.xsl
+%%DATADIR%%/svd2forth-v1/mk.template.xsl
+%%DATADIR%%/svd2forth-v1/process.sh
+%%DATADIR%%/svd2forth-v1/register-reference.xsl
+%%DATADIR%%/svd2forth-v1/svdcutter.xsl
+%%DATADIR%%/svd2forth-v1/svduf.xsl
+%%DATADIR%%/svd2forth-v2/Makefile
+%%DATADIR%%/svd2forth-v2/README.txt
+%%DATADIR%%/svd2forth-v2/ancient/Makefile
+%%DATADIR%%/svd2forth-v2/ancient/README.txt
+%%DATADIR%%/svd2forth-v2/ancient/STM32F0xx.svd
+%%DATADIR%%/svd2forth-v2/ancient/mk.template.xsl
+%%DATADIR%%/svd2forth-v2/ancient/registers.xsl
+%%DATADIR%%/svd2forth-v2/ancient/svdcutter.xsl
+%%DATADIR%%/svd2forth-v2/ancient/svduf.xsl
+%%DATADIR%%/svd2forth-v2/e4thcom-ttyUSB0.sh
+%%DATADIR%%/svd2forth-v2/e4thcom-ttyUSB1.sh
+%%DATADIR%%/svd2forth-v2/e4thcom-ttyUSB2.sh
+%%DATADIR%%/svd2forth-v2/e4thcom-ttyUSB3.sh
+%%DATADIR%%/svd2forth-v2/mk.template.xsl
+%%DATADIR%%/svd2forth-v2/registers.xsl
+%%DATADIR%%/svd2forth-v2/svdcutter.xsl
+%%DATADIR%%/svd2forth-v2/svduf.xsl
+%%DATADIR%%/svd2forth-v3/1b.fs
+%%DATADIR%%/svd2forth-v3/Makefile
+%%DATADIR%%/svd2forth-v3/README.txt
+%%DATADIR%%/svd2forth-v3/STM32L07x.svd
+%%DATADIR%%/svd2forth-v3/bitfields-rcc-screenshot.txt
+%%DATADIR%%/svd2forth-v3/bitfields.xsl
+%%DATADIR%%/svd2forth-v3/equates-rcc-sample.txt
+%%DATADIR%%/svd2forth-v3/mk.template.xsl
+%%DATADIR%%/svd2forth-v3/raw-svd-clean.sh
+%%DATADIR%%/svd2forth-v3/register-print-screenshot.txt
+%%DATADIR%%/svd2forth-v3/svd2gas-equates.xsl
+%%DATADIR%%/svd2forth-v3/svdcutter.xsl
+%%DATADIR%%/svd2forth-v3/svduf.xsl
+%%DATADIR%%/svd2gas/Makefile
+%%DATADIR%%/svd2gas/README.txt
+%%DATADIR%%/svd2gas/mk.template.xsl
+%%DATADIR%%/svd2gas/svd2gas.xsl
+%%DATADIR%%/svd2gas/svduf.xsl
+%%DATADIR%%/trace.txt
+%%DATADIR%%/value-classic.txt
+%%DATADIR%%/value-ra.txt