README: Add build guide
Этот коммит содержится в:
родитель
7460e10894
коммит
03c8a8bd3a
1 изменённых файлов: 43 добавлений и 0 удалений
|
@ -91,6 +91,49 @@ Implemented analysis passes:
|
|||
[type-based alias analysis](https://en.wikipedia.org/wiki/Alias_analysis#Type-based_alias_analysis).
|
||||
I would like to use flow-based alias analysis in the future.
|
||||
|
||||
## Building
|
||||
|
||||
Requirements:
|
||||
|
||||
* Go 1.10+ (Go 1.9 has a
|
||||
[known bug](https://github.com/aykevl/tinygo/issues/2)).
|
||||
* LLVM dependencies, see the Software section in the
|
||||
[LLVM build guide](https://llvm.org/docs/GettingStarted.html#software).
|
||||
|
||||
First download the sources (this takes a while):
|
||||
|
||||
go get -u github.com/aykevl/tinygo
|
||||
|
||||
You'll get an error like the following, this is expected:
|
||||
|
||||
src/github.com/aykevl/llvm/bindings/go/llvm/analysis.go:17:10: fatal error: 'llvm-c/Analysis.h' file not found
|
||||
#include "llvm-c/Analysis.h" // If you are getting an error here read bindings/go/README.txt
|
||||
^~~~~~~~~~~~~~~~~~~
|
||||
1 error generated.
|
||||
|
||||
To continue, you'll need to build LLVM for Go. This will take about an hour and
|
||||
require a fair bit of RAM. In fact, I would recommend setting your `ld` binary
|
||||
to `gold` to speed up linking, especially on systems with less than 16GB RAM.
|
||||
|
||||
Also, I would recommend editing build.sh and set `cmake_flags` to:
|
||||
|
||||
```sh
|
||||
cmake_flags="../../../../.. $@ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=AVR -DLLVM_LINK_LLVM_DYLIB=ON"
|
||||
```
|
||||
|
||||
This will enable the experimental AVR backend (for Arduino support) and will
|
||||
make sure `tinygo` links to a shared library instead of a static library,
|
||||
greatly improving link time on every rebuild. This is especially useful during
|
||||
development.
|
||||
|
||||
After LLVM has been built, you can run an example with:
|
||||
|
||||
make run-hello
|
||||
|
||||
For a blinky example on the PCA10040 development board, do this:
|
||||
|
||||
make flash-blinky TARGET=pca10040
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the BSD 3-clause license, just like the
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче