mirror of https://github.com/tinygo-org/tinygo.git
wasmstm32webassemblymicrocontrollerarmavrspiwasiadafruitarduinocircuitplayground-expressgpioi2cllvmmicrobitnrf51nrf52nrf52840samd21tinygo
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
957 B
40 lines
957 B
# tinygo-llvm stage obtains the llvm source for TinyGo
|
|
FROM golang:1.21 AS tinygo-llvm
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y apt-utils make cmake clang-15 ninja-build
|
|
|
|
COPY ./Makefile /tinygo/Makefile
|
|
|
|
RUN cd /tinygo/ && \
|
|
make llvm-source
|
|
|
|
# tinygo-llvm-build stage build the custom llvm with xtensa support
|
|
FROM tinygo-llvm AS tinygo-llvm-build
|
|
|
|
RUN cd /tinygo/ && \
|
|
make llvm-build
|
|
|
|
# tinygo-compiler stage builds the compiler itself
|
|
FROM tinygo-llvm-build AS tinygo-compiler
|
|
|
|
COPY . /tinygo
|
|
|
|
# update submodules
|
|
RUN cd /tinygo/ && \
|
|
rm -rf ./lib/*/ && \
|
|
git submodule sync && \
|
|
git submodule update --init --recursive --force
|
|
|
|
RUN cd /tinygo/ && \
|
|
make
|
|
|
|
# tinygo-tools stage installs the needed dependencies to compile TinyGo programs for all platforms.
|
|
FROM tinygo-compiler AS tinygo-tools
|
|
|
|
RUN cd /tinygo/ && \
|
|
make wasi-libc binaryen && \
|
|
make gen-device -j4 && \
|
|
cp build/* $GOPATH/bin/
|
|
|
|
CMD ["tinygo"]
|
|
|