diff --git a/srcpkgs/tinygo/INSTALL.msg b/srcpkgs/tinygo/INSTALL.msg new file mode 100644 index 00000000000000..cf2885780dcbd3 --- /dev/null +++ b/srcpkgs/tinygo/INSTALL.msg @@ -0,0 +1 @@ +Set the environment variable TINYGOROOT to /usr/lib/tinygo. diff --git a/srcpkgs/tinygo/template b/srcpkgs/tinygo/template new file mode 100644 index 00000000000000..42201d34eab557 --- /dev/null +++ b/srcpkgs/tinygo/template @@ -0,0 +1,96 @@ +# Template file for 'tinygo' +pkgname=tinygo +version=0.31.2 +revision=1 +build_style=go +build_wrksrc=${pkgname}-${version} +go_import_path=github.com/tinygo-org/tinygo +makedepends="clang17 clang17-devel llvm17-devel lld17 cmake ninja which" +short_desc="Go compiler for small places" +maintainer="Felix Hanley " +license="BSD-3-Clause, Apache-2.0" +homepage="https://tinygo.org/" +_cmsis=9fe411cef1cef5de58e5957b89760759de44e393 +_avr_mcu=6624554c02b237b23dc17d53e992bf54033fc228 +_binaryen=11dba9b1c2ad988500b329727f39f4d8786918c5 +_cmsis_svd_data=40327a4d2dff0992682be2872aaa6e096f35d2f4 +_nrfx=d779b49fc59c7a165e7da1d7cd7d57b28a059f16 +_picolibc=b92edfda8ac6853772d87cadaeeeaa21b78609b6 +_renesas_svd=03d76880854b9042f5d043f4355cdf8eef522fa5 +_stm32_svd=e6db8e32d5d42293a528434ec12e7f88479a8649 +_wasi_libc=1dfe5c302d1c5ab621f7abf04620fae92700fd22 +_musl=1.2.3 +_net=a79417481d37e21f29d257c28fecc503df9703e0 +create_wrksrc=yes +distfiles="https://github.com/tinygo-org/tinygo/archive/v${version}.tar.gz + https://github.com/ARM-software/CMSIS/archive/${_cmsis}.tar.gz>cmsis-${_cmsis}.tar.gz + https://github.com/avr-rust/avr-mcu/archive/${_avr_mcu}.tar.gz>avr-mcu-${_avr_mcu}.tar.gz + https://github.com/WebAssembly/binaryen/archive/${_binaryen}.tar.gz>binaryen-${_binaryen}.tar.gz + https://github.com/cmsis-svd/cmsis-svd-data/archive/${_cmsis_svd_data}.tar.gz>cmsis-svd-data-${_cmsis_svd_data}.tar.gz + https://github.com/NordicSemiconductor/nrfx/archive/${_nrfx}.tar.gz>nrfx-${_nrfx}.tar.gz + https://github.com/keith-packard/picolibc/archive/${_picolibc}.tar.gz>picolibc-${_picolibc}.tar.gz + https://github.com/tinygo-org/renesas-svd/archive/${_renesas_svd}.tar.gz>renesas-svd-${_renesas_svd}.tar.gz + https://github.com/tinygo-org/stm32-svd/archive/${_stm32_svd}.tar.gz>stm32-svd-${_stm32_svd}.tar.gz + https://musl.libc.org/releases/musl-${_musl}.tar.gz>musl-${_musl}.tar.gz + https://github.com/WebAssembly/wasi-libc/archive/${_wasi_libc}.tar.gz>wasi-libc-${_wasi_libc}.tar.gz + https://github.com/tinygo-org/net/archive/${_net}.tar.gz>net-${_net}.tar.gz" +checksum="b318b1a12e3c0b85583402b54832a5d9004dc646b6633da04acb8ce4939741fd + b61f6ceeef65469780d985518d41513d3853e61f51cc777d4010ff4c315d51e4 + 0f7a130d82a6b6f3cc171e42dfaf62228e0f987239c87711996d4f54b49ad9e0 + 590c0c7518f6e990d6ce9f1db8f5d24b8b40338a2c11e86868dc7c547aa49bc2 + 3aa5fa475a3c6204f74981ef86f6d448d86cc005efe2ecf243bb4704abcba56c + 0b65a3cd26a67b7171baf3558d0f9c77f61220a3925eab58201cfa9406e31aab + 16e120bd32d23e958db064aeb8589a73d9cc1497c9726a371dfea4107abbc3ec + f0f8cad531567424d03326ce279f12917351df6511cac2c2a2428a831e2e61e6 + f2fa456da8905faed0bfbc6e7575a3936254466f62010dcc04ca789f6df7929a + 7d5b0b6062521e4627e099e4c9dc8248d32a30285e959b7eecaa780cf8cfd4a4 + 1bf642d35f8876a256824db01a43436c0b83ce4a0865578d03c37b16937a9b06 + 0e819b95a2a546a331fcd21e796a8e56417c4f97ad879c14d6160b467a3a3c25" + +skip_extraction=" + cmsis-${_cmsis}.tar.gz + avr-mcu-${_avr_mcu}.tar.gz + binaryen-${_binaryen}.tar.gz + cmsis-svd-data-${_cmsis_svd_data}.tar.gz + nrfx-${_nrfx}.tar.gz + picolibc-${_picolibc}.tar.gz + renesas-svd-${_renesas_svd}.tar.gz + stm32-svd-${_stm32_svd}.tar.gz + musl-${_musl}.tar.gz + wasi-libc-${_wasi_libc}.tar.gz + net-${_net}.tar.gz" + +nostrip_files="RTX_CM0.a RTX_CM0_B.a RTX_CM3.a RTX_CM3_B.a RTX_CM4.a RTX_CM4_B.a" + +post_extract() { + vsrcextract -C ${pkgname}-${version}/lib/CMSIS "cmsis-${_cmsis}.tar.gz" + vsrcextract -C ${pkgname}-${version}/lib/avr "avr-mcu-${_avr_mcu}.tar.gz" + vsrcextract -C ${pkgname}-${version}/lib/binaryen "binaryen-${_binaryen}.tar.gz" + vsrcextract -C ${pkgname}-${version}/lib/cmsis-svd "cmsis-svd-data-${_cmsis_svd_data}.tar.gz" + vsrcextract -C ${pkgname}-${version}/lib/nrfx "nrfx-${_nrfx}.tar.gz" + vsrcextract -C ${pkgname}-${version}/lib/picolibc "picolibc-${_picolibc}.tar.gz" + vsrcextract -C ${pkgname}-${version}/lib/renesas-svd "renesas-svd-${_renesas_svd}.tar.gz" + vsrcextract -C ${pkgname}-${version}/lib/stm32-svd "stm32-svd-${_stm32_svd}.tar.gz" + vsrcextract -C ${pkgname}-${version}/lib/musl "musl-${_musl}.tar.gz" + vsrcextract -C ${pkgname}-${version}/lib/wasi-libc "wasi-libc-${_wasi_libc}.tar.gz" + vsrcextract -C ${pkgname}-${version}/lib/net "net-${_net}.tar.gz" +} + +post_build() { + make gen-device + make wasi-libc + make binaryen +} + +post_install() { + vmkdir usr/lib/tinygo + vbin build/wasm-opt + vbin build/gen-device-avr + vbin build/gen-device-svd + vcopy src usr/lib/tinygo + vmkdir usr/lib/tinygo/targets + vcopy "targets/*" usr/lib/tinygo/targets + vmkdir usr/lib/tinygo/lib + vcopy "lib/*" usr/lib/tinygo/lib/ + vlicense LICENSE +}