aboutsummaryrefslogtreecommitdiffhomepage
path: root/Makefile
AgeCommit message (Collapse)Author
2022-07-16boards: Add MCH2022 badgeAyke van Laethem
I haven't fully tested this badge because I don't have the physical hardware but I have followed the pinout from the website.
2022-07-15nrf51: define and use P0_xx constantsAyke van Laethem
This makes nrf51 consistent with nrf52 and other chips, which do provide constants for hardware pin numbers. I've also added the microbit to the smoketest because it is used on play.tinygo.org. And removed PCA10040 and PCA10056 because they aren't provided on play.tinygo.org anymore.
2022-07-12usb: add support for midisago35
2022-07-08ci: build Linux binary in Alpine containerAyke van Laethem
This makes it easier to move the TinyGo compiler between Linux versions because it doesn't depend on any system libraries anymore. For example, binaries should be able to run on old Linux versions and on distributions without glibc (such as Alpine Linux).
2022-07-08boards: add Challenger RP2040 LoRaKenneth Bell
2022-07-06Initial support for XIAO RP2040Daniel Esteban
2022-06-30ci: disable ccache on WindowsAyke van Laethem
2022-06-29makefile: add badger2040, thingplus-rp2040 to smoketestsago35
2022-06-21wasm: use newer WebAssembly featuresAyke van Laethem
This commit will start to use a few more WebAssembly features, such as bulk memory operations. This results in a significant code size saving. How much it saves varies a lot but it's typically around 1300 bytes. This change is possible by bumping our minimum Node.js version to 14. The previous LTS version (12) has been marked end of life, so we can start to depend on features in the current oldest LTS version, which is version 14. Browsers have been supporting these features for a long time now, it's just Node.js that prevented us doing this before.
2022-06-21wasm: update wasi-libc versionAyke van Laethem
This is necessary for the next commit. It also results in a nice wasm binary size saving of around 300 bytes.
2022-06-19all: run gofmt on all source codeAyke van Laethem
Some source code wasn't part of `FMT_PATHS` so wasn't checked for correct formatting. This change includes all this source code and excludes cgo/testdata because it contains files that can't be parsed.
2022-06-16compiler: implement recover() built-in functionAyke van Laethem
2022-06-11smoketest: add regression test for 'tinygo test ./...', see #2892Dan Kegel
tests/testing/recurse has two directories with tests; "make smoketest" now does "tinygo test ./..." in that directory and fails if it does not run both directories' tests.
2022-06-11samd21,samd51,nrf52840: add support for USBHID (keyboard / mouse)sago35
2022-06-01os, runtime: enable os.Stdin for baremetal targetsago35
2022-05-30all: add support for the embed packageAyke van Laethem
2022-05-23ci: Add arm64 buildDylan Arbour
2022-05-22darwin: support -size= flagAyke van Laethem
This is just basic support. It doesn't add support for reading DWARF, because that's a bit complicated on MacOS (it isn't stored in the file itself but separately in the object files). But at least this change makes it possible to easily print executable sizes by section type like for other operating systems.
2022-05-20darwin: add support for arm64 GOARCH (aka Apple Silicon)Ayke van Laethem
This patch adds support for generating GOOS=darwin GOARCH=arm64 binaries. This means that it will become possible to run `go test` on recent Macs, for example.
2022-05-19Use release built tinygo in MakefileDylan Arbour
Closes #2795
2022-05-10Makefile: fix forced rebuild of LLVMAyke van Laethem
This is a small change that makes sure not to force a rebuild of LLVM every time. For example, I might run: make llvm-source make llvm-build ASSERT=1 And then I might make some temporary changes to LLVM to test out a patch for example. So I run: make llvm-build ...and my whole build cache gets destroyed. This commit addresses this issue by not forcing a re-run of CMake with every `make llvm-build` invocation.
2022-05-03os: Drop support for go 1.15Dan Kegel
1.15 specific files deleted. 1.16 specific files folded carefully into generic files, with goal of reducing diff with upstream. Follows upstream 1.16 in making PathError etc. be aliases for the same errors in io/fs. This fixes #2817 and lets us add io/ioutil to "make test-tinygo" on linux and mac.
2022-04-27ci: add ARM build, cross compiled on an amd64 hostAyke van Laethem
I'm making this so I don't have to build all the releases on my Raspberry Pi at home, and to make the process more reproducible.
2022-04-25Makefile: compress/lzw fails on windows wasi, see #2800, not plain windows.Dan Kegel
2022-04-25machine/circuitplay-bluefruit: move pin mappings so board can be compiled ↵deadprogram
for WASM use in Playground Signed-off-by: deadprogram <[email protected]>
2022-04-23all: update to LLVM 14Ayke van Laethem
Switch over to LLVM 14 for static builds. Keep using LLVM 13 for regular builds for now. This uses a branch of the upstream Espressif branch to fix an issue, see: https://github.com/espressif/llvm-project/pull/59
2022-04-18Makefile: tinygo-test: skip compress/flate test on windows for nowDan Kegel
Lets us move forward until https://github.com/tinygo-org/tinygo/issues/2762 is fixed.
2022-04-10all: use compiler-rt from LLVMAyke van Laethem
2022-03-19Move gitSha1 build time variable from main to goenv packageZauberNerd
Moving and exporting this variable from the main to the goenv package allows us to use it from both the main and the builder package. This is done in preparation to include the value in `tinygo build` linker flags, so that we can embed the version and git sha into binaries built with tinygo.
2022-03-15Add regression test for #2666.Dan Kegel
I didn't see how to run it easily from main_test.go, though I didn't try too hard. And it doesn't really have a good place to go in Makefile. So I added a new target tinygo-baremetal, and invoke it from CI at the end of assert-test-linux. It only adds 7 seconds to the run, should be ok.
2022-03-12builder: use correct permission bits when creating a libraryAyke van Laethem
Previously, the wrong permission bits were emitted by `tinygo build-library`. This commit fixes that, by `chmod`'ing to reasonable default permission bits.
2022-03-12Makefile: chmod before fpm. For #2685Dan Kegel
2022-03-05Makefile: add report-stdlib-tests-passDan Kegel
2022-03-02Makefile: add compress/lzw, debug/dwarf, debug/plan9obj, and net to list of ↵Dan Kegel
tests
2022-02-28Revert "all: move stm32 files to separate repository"sago35
This reverts commit 644356c220ed88f110d01300f671a170cd36eb04.
2022-02-24Makefile: add testing/fstest to tinygo-test where supportedDan Kegel
2022-02-24Makefile: add io/fs to tinygo-test where supportedDan Kegel
Depends on t.TempDir(), which is why this wasn't enabled earlier.
2022-02-24test: Add text/template smoke testKyle Conroy
2022-02-19board: Adafruit MacroPad RP2040BCG
2022-02-18all: move stm32 files to separate repositoryAyke van Laethem
2022-02-13board: add definition for Teensy 4.1 (#2618)BCG
* board: add definition for Teensy 4.1
2022-02-12builder: add support for cross compiling to DarwinAyke van Laethem
This means that it will be possible to generate a Darwin binary on any platform (Windows, Linux, and MacOS of course), including CGo. Of course, the resulting binaries can only run on MacOS itself. The binary links against libSystem.dylib, which is a shared library. The macos-minimal-sdk repository contains open source header files and generated symbol stubs so we can generate a stub libSystem.dylib without copying any closed source code.
2022-02-03wasm: remove heap allocator from wasi-libcAyke van Laethem
This would conflict with our own heap. We previously defined all those functions to make sure it's not used, but with a more recent wasi-libc version (https://github.com/WebAssembly/wasi-libc/pull/250) we can simply not compile the wasi-libc heap, which is the proper fix.
2022-01-26build: fix build-library subcommandv0.22.0Ayke van Laethem
This subcommand has been broken for a while, since libraries also use the CPU flag. This commit fixes this. Previously, libraries were usable for most Cortex-M cores. But with the addition of the CPU field, I've limited it to three popular cores: the Cortex-M0 (microbit), Cortex-M0+ (atsamd21), and Cortex-M4 (atsamd21, nrf52, and many others). In the future we might consider also building libraries for the current OS/arch so that libraries like musl are already precompiled.
2022-01-23main (test): integrate test corpus runnerNia Waldvogel
This allows us to test a large corpus of external packages against the compiler.
2022-01-21Makefile: detected TINYGO now works even if a rule changes directoryDan Kegel
2022-01-21os: add stubs for Readlink and File.Seek for baremetal targets, with smoke test.Dan Kegel
Test currently enabled on pybadge (chosen at random) TODO: - enable test on arduino; currently fails with "interp: ptrtoint integer size..." (#2389) - enable test on nintendoswitch; currently fails with many missing definitions (#2530)
2022-01-20Makefile: exclude archive/zip from TEST_PACKAGES on windows until ReadAt ↵Dan Kegel
supported
2022-01-20Makefile: add archive/zip to TEST_PACKAGESDan Kegel
Except on windows, where it fails because it needs ReadAt, which we don't implement on windows yet.
2022-01-19Makefile: use absolute path for llvm-build/bin/* binariesAyke van Laethem
This un-breaks `make wasi-libc` on my system.