Commit Graph

38 Commits

Author SHA1 Message Date
ayan george c9721197d5 bulid: Rename Makefile to GNUmakefile
Prior to this commit, the build instructions were encoded in Makefiles
that contained GNU extensions that are unique to GNU Make and
incompatible with older implementations.

Thie commit renames all Makefiles to GNUmakefile which clearly denotes
that the file contains GNU extensions.

GNU Make actually first looks for a GNUmakefile, then makefile, THEN
Makefile so in addition to simply being more correct and portable, it
saves a few unnecessary failed attempts to open the correct build
file.
2023-10-01 14:55:34 +02:00
ayan george 738747bd05 build: use $(MAKE) to represent make executable
Prior to this commit, our Makefiles assumed the name of the make program
was simply "make".

Since we use GNU make extensions, this isn't always the case --
operating systems like FreeBSD come with their own implementation named
make which can be incompatible with the extensions used in by tinygo.

To run a compatible make on some of these systems, we have explicitly
call GNU make by running gmake.

This commit changes references to the command "make" to "$(MAKE)" which
is a variable that contains the name of the executable invoked to
process the Makefile.

This allow the Makefiles to be uniformly processed by the same make
program.
2023-10-01 14:55:34 +02:00
Ron Evans b4dd2dbf60 docs: change links in README and remove old ReadTheDocs pages to point to TinyGo.org site
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2019-01-13 20:29:45 +01:00
Konstantin Yegupov a8dd82538e all: add flag to enable i64 parameters in WebAssembly 2019-01-03 18:09:33 +01:00
Johan Brandhorst a830451426 Dockerfile, README, docs: Remove entrypoint
This was causing more trouble than it was helping,
so lets remove it.
2018-12-17 20:41:33 +01:00
Ayke van Laethem 564b1b3312 compiler: always use fat function pointers with context
This reduces complexity in the compiler without affecting binary sizes
too much.

Cortex-M0:   no changes
Linux x64:   no changes
WebAssembly: some testcases (calls, coroutines, map) are slightly bigger
2018-12-09 18:47:39 +01:00
Ron Evans 8325f2a53d reelboard: support Reel Board (nrf52840 dev board)
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-12-01 18:25:36 +01:00
Ron Evans 8f35a4711a pca10056: support this nrf52840-based board
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-12-01 18:19:42 +01:00
Ayke van Laethem e54a1c4dc0 compiler: disallow exporting functions that have their address taken
This simplifies the ABI a lot and makes future changes easier.
In the future, determining which functions need a context parameter
should be moved from IR generation into an optimization pass, avoiding
the need for recursively scanning the Go SSA.
2018-12-01 17:41:20 +01:00
Darren Rush cea0a5977a docs: enable tinygo/docker to resolve go dependencies
Example for mapping the GOPATH into the tinygo docker image so that go
dependencies installed on the host can be found by the image.
2018-12-01 13:40:42 +01:00
Ayke van Laethem 62d74d8329 all: compile and link using clang, where possible 2018-11-22 16:20:10 +01:00
Ron Evans ce0ad1daa2 pca10031: add support for PCA10031 nrf51 wireless dongle
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-11-21 10:36:36 +01:00
Ayke van Laethem 9392ef900d avr: add support for the digispark
Blinking the on-board LED works. Nothing else has been tested yet.
2018-11-20 18:50:24 +01:00
Ayke van Laethem 74b5e28a38 docs: add documentation for the -gc compiler flag 2018-11-18 19:32:57 +01:00
Ron Evans ae3535945c all: add support to Dockerfile for AVR and ARM targets
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-11-15 12:53:10 +01:00
Ayke van Laethem 101d41dc58 compiler: pass i64 return value in an extra pointer param
To support the WebAssembly<->JS barrier, return values also have to be
passed in memory. i64 return values are used by syscall/js, so must be
supported across this ABI barrier.
2018-11-14 12:35:43 +01:00
Ayke van Laethem 2e22d53e5d compiler: work around i64 limitation in JavaScript
JavaScript does not support i64 directly, so make sure we pass a pointer
instead which can be read from JavaScript.

This is a temporary workaround which should be removed once JavaScript
supports some form of i64 (probably in the form of BigInt).
2018-11-03 12:03:49 +01:00
Ayke van Laethem c7cf6f0e82 docs: move calling convention documentation here 2018-11-01 11:41:24 +01:00
Ayke van Laethem 85d5fe7643 docs: add description of internal datatypes 2018-10-31 20:47:12 +01:00
Ayke van Laethem 06b8afab2e docs: add command line subcommands + flags documentation 2018-10-31 19:55:48 +01:00
Ayke van Laethem 7ea9a32058 docs: give a small example how JS<->wasm bridging is done 2018-10-31 19:55:46 +01:00
Ayke van Laethem c88d2d10a7 docs: give a working Docker example 2018-10-21 22:42:38 +02:00
Ayke van Laethem 58ce5d9bf2 docs: add WebAssembly to targets and improve formatting 2018-10-21 20:22:21 +02:00
Ayke van Laethem e5e09747f0 all: add WebAssembly backend 2018-10-21 19:47:47 +02:00
Johan Brandhorst 97caabb8c2 Add Dockerfile 2018-10-21 00:28:18 +01:00
Ayke van Laethem b81aecf753 docs: add "Supported targets" page 2018-10-18 15:35:50 +02:00
Ayke van Laethem 72390c21cb docs: add FAQ 2018-10-17 17:55:11 +02:00
Ayke van Laethem 392bba8394 compiler: add support for parameters to inline assembly 2018-10-15 19:37:09 +02:00
Ayke van Laethem 0e65b0da1c docs: add page "Go on microcontrollers" 2018-10-09 15:32:40 +02:00
Ayke van Laethem 823ecd5167 docs: reorder internals sections 2018-10-09 15:32:40 +02:00
Ayke van Laethem f0f6a12d19 docs: add avr-libc as a dependency 2018-10-07 22:14:44 +02:00
Ayke van Laethem 22da104530 all: use compiler-rt for builtins 2018-10-07 19:04:29 +02:00
Ayke van Laethem bcf441ccba docs: add another way in which a llvm-7-dev installation can fail 2018-09-30 18:02:15 +02:00
Ayke van Laethem a2e57b40f9 docs: update installation instructions
* Update to system-installed LLVM.
  * Avoid the use of make.
2018-09-30 15:40:58 +02:00
Ayke van Laethem 3850530c88 docs/installation: fix LLVM hyperlink 2018-09-23 17:21:49 +02:00
Ayke van Laethem 3e1a60351d docs/internals: fix hyperlink 2018-09-23 17:20:24 +02:00
Ayke van Laethem c9a2b3f417 docs: remove "Indices and tables" 2018-09-23 17:05:32 +02:00
Ayke van Laethem f7f33a1163 docs: add initial documentation 2018-09-23 16:46:57 +02:00