はじめに
他のプログラミング言語同様、Tinygo 本体のリポジトリの最新の機能を試したい場合はソースコードから build する必要があります。
本体の build 方法は公式ページの Build from sourceへも記載されていますが、
一連の流れに沿って説明した方がわかりやすいので新たに記事として書き起こします。
build までのステップ
本記事では、以下の 3 ステップに分けて手順を説明します。
- build 環境のインストール
- llvm 環境の build
- tinygo コマンドの build
1.build 環境のインストール
以下の環境(コマンド)を全てインストールします。
環境は全て Chocolatey にてインストールすることが可能です。
(以下の括弧内は記事執筆時の各環境の version です。)
-
git
(2.34.1) -
go
(1.19)- Tinygo に対応する version の制限があるため version に注意
-
make
(4.3) -
cmake
(3.25.2) -
ninja
(1.11.1) -
python
(3.9.10) -
mingw
(12.2.0)
ステップ 2. 以降の手順ではgcc
関連のバイナリ (g++
等) は上記のmingw
環境のものが参照される必要があるため注意してください。(gcc
環境は別の環境構築の際にインストールされている場合が多いです)
実際に実行するインストールコマンドは例えば以下のようになります。
既に Git
や Go
をインストーラーにてインストールしている場合は、
新たにインストールする必要はありません。
$ choco install --confirm git golang make cmake ninja python
$ choco install mingw -Version 8.1.0
もしくは、以下のファイルをダウンロードして $ choco install tinygo_build_package.config
にて一括でインストールすることも可能です。
tinygo_build_package.config
2. llvm 環境の build
本手順以降では、Git に同梱されている bash.exe (Gitのインストールディレクトリ/bin/bash.exe
のように入っています)を起動してそちらで作業を行ってください。
llvm 環境の build は以下を実行します。
$ make llvm-build
はそれなりに時間がかかります(筆者のラップトップ環境で約 1.5h)。
$ make llvm-source
$ make llvm-build
3. tinygo コマンドの build
Tinygo 本体のバイナリと、デバイス関連ファイルの更新を以下にて実施します。
また、$ make gen-device
を実行する前に関連するモジュールを Git にてダウンロードする必要があります。
$ make
$ git submodule update --init
$ make gen-device
なお、本ステップで環境に問題がないにもかかわらず失敗する場合は、ステップ 2. から再度実施することで解消する場合があります。
まとめ
build にあたり環境をいくつかインストールする必要がありますが、さほど手順は煩雑ではないため、
Windows でもスムーズに build することができます。
Tinygo プロジェクトは比較的改善難易度の低い Issue も多数挙がっているため、OSS に commit するにはチャンスのプロジェクトです。