FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

MIPS用GCC5.1をビルドするVagrant環境を構築してみた

GCCの評価とか、シミュレーションを回したりするのはUbuntuの上でやっているのだけれども、VMware Player上でUbuntuを再構築することが多く、何度もGCCの評価環境を構築し直すことがある。 だんだん面倒になってきたので、最近流行りのVagrantとChefを使って、自動的にMIPSGCCをビルドして開発環境を構築できるようにしてみた。

基本的にVagrantfileとChefを使っているので、全部Githubに上げることができる。

github.com

Chefの環境を、site-cookbooksにsubmoduleとして組み込んでいる。

github.com

$ tree .
.
├── Vagrantfile
└── mips51-repo
    ├── cookbooks
    ├── data_bags
    ├── environments
    ├── nodes
    │   └── 192.168.33.10.json
    ├── roles
    └── site-cookbooks
        └── mips51-tools   <-- ここから先はsubmodule
            ├── CHANGELOG.md
            ├── README.md
            ├── metadata.rb
            └── recipes
                └── default.rb

vagrant upで立ち上げることができる。vagrant ssh でログインすると、mipsel-linux-elf-gccが利用できるようになっている。

一番キモになるのは、mips51-toolsのdefault.rbに記述してあるレシピだ。

をダウンロード & 解凍 & インストールを行うようになっている。

execute "build gcc-1" do
  cwd "#{gcc_build_dir}"
  command "../configure --target=mipsel-linux-elf --disable-nls --disable-libssp --with-gnu-ld --with-gnu-as --disable-shared --enable-languages=c && make && make install"
  action :run
end

最初気がつかなかったのは、executeでインストールするときにcommandを1-lineで記述しなければならないこと複数行に渡ってcommandを記述していると最後の1行しか実行されなくて???だった。

さて、これだけではまだemacsとかも入っていないので、自動的にemacsやらinit.elやら.gitconfigなどをインストールできるようにしておきたい。 開発環境なので、ローカルに持っているベンチマークセットのリポジトリとかも自動的に展開できるようにしとかなければならないな。