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.
43 lines
1.1 KiB
43 lines
1.1 KiB
# tinygo-llvm stage obtains the llvm source for TinyGo
|
|
FROM golang:1.23 AS tinygo-llvm
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y apt-utils make cmake clang-15 ninja-build && \
|
|
rm -rf \
|
|
/var/lib/apt/lists/* \
|
|
/var/log/* \
|
|
/var/tmp/* \
|
|
/tmp/*
|
|
|
|
COPY ./GNUmakefile /tinygo/GNUmakefile
|
|
|
|
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-build stage builds the compiler itself
|
|
FROM tinygo-llvm-build AS tinygo-compiler-build
|
|
|
|
COPY . /tinygo
|
|
|
|
# build the compiler and tools
|
|
RUN cd /tinygo/ && \
|
|
git submodule update --init && \
|
|
make gen-device -j4 && \
|
|
make build/release
|
|
|
|
# tinygo-compiler copies the compiler build over to a base Go container (without
|
|
# all the build tools etc).
|
|
FROM golang:1.23 AS tinygo-compiler
|
|
|
|
# Copy tinygo build.
|
|
COPY --from=tinygo-compiler-build /tinygo/build/release/tinygo /tinygo
|
|
|
|
# Configure the container.
|
|
ENV PATH="${PATH}:/tinygo/bin"
|
|
CMD ["tinygo"]
|
|
|